Commit Graph

126 Commits

Author SHA1 Message Date
Vadim Zeitlin
d4f380e16e Use Bind() instead of Connect() in wxWidgets code
Use more modern function which allows to avoid wxXXXEventHandler()
macros use.

No real changes.
2018-05-30 13:06:20 +02:00
Paul Cornett
cd1c3fab0c Use static linkage for various local names 2017-09-24 09:29:26 -07:00
Artur Wieczorek
c3fa684a27 Fixed displaying validation error for numeric wxPG properties (wxUIntProperty, etc.)
When entered wxFloatProperty, wxIntProperty or wxUIntProperty is out of range then there is displayed a warning message presenting a valid range. Instead of displaying in this message numeric values in default (and fixed) format we should display values which are formatted based on to the current attributes of the property (like wxPG_UINT_PREFIX, wxPG_UINT_BASE, wxPG_FLOAT_PRECISION).
To do so, we shouldn't format respective values on our own in NumericValidation() but instead call wxPGProperty()::ValueToString() which returns value string formatted in line with attributes.

Closes #17601
2016-07-21 23:13:16 +02:00
Artur Wieczorek
6e97a2cbf2 Fixed displaying wxUIntProperty value
In the edit mode property's value should be displayed in the pure numeric form without any textual prefixes because all non-numeric characters will raise a warning in wxNumericPropertyValidator.
2016-07-21 23:11:33 +02:00
Artur Wieczorek
5619e7f964 Use wxSwap function to swap values of array elements in wxPGArrayStringEditorDialog::ArraySwap. 2015-08-30 19:49:29 +02:00
Artur Wieczorek
d6f2264f8b Use Boolean variable to store Boolean value. 2015-08-30 19:48:09 +02:00
Artur Wieczorek
de38b5da25 Use wxUniChar instead of wxChar for operations with wxString iterators. 2015-06-29 20:06:27 +02:00
Artur Wieczorek
7c0b52671d Use wxS macro with string literals.
To make string literals notation consistent.
2015-06-25 21:22:45 +02:00
Vadim Zeitlin
095cf87eb6 Work around "missing" LLONG_MAX &c in MinGW strict ANSI mode.
Definitions of non-standard LLONG_MAX, LLONG_MIN and ULLONG_MAX constants are
excluded from MinGW limits.h when compiling in "strict ANSI" mode, so define
them ourselves.
2015-06-14 19:52:28 +02:00
Artur Wieczorek
aeed3322f2 Fixed minor typos in comments. 2015-06-08 21:49:38 +02:00
Artur Wieczorek
cb6efbd3c3 Lay out various wxPG dialogs based on the current system screen design.
Currently, customizing some dialogs for small screen environment is done statically on the build stage by setting wxPG_SMALL_SCREEN to 1 (what is done for WXWINCE only).
Instead, we can do this for all platforms in a dynamic manner, based on the classification provided by wxSystemSettings::GetScreenType() function.
In order to do so there is introduced a static helper function wxPropertyGrid::IsSmallScreen() which is used to select right parameters (size, position) for several dialogs in order to display them correctly on the small screen.
2015-06-08 21:46:03 +02:00
Artur Wieczorek
1d9c1b35fd Use pre-increment operator to increment iterator in the loop.
When the return value is ignored, the ++it is never less efficient than the it++.
2015-06-07 23:05:42 +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
213df7dd88 Use conditional operator instead of conditional statement in wxBoolProperty::ValueToString. 2015-06-06 17:48:59 +02:00
Jan van Dijk
72a4c3a4d0 Don't test if a reference is null, this cannot happen.
Testing for null references is unnecessary and just results in clang warnings.

Closes #17016.
2015-06-03 17:08:30 +02:00
Artur Wieczorek
67bfb78ace Replace wxT() with wxS() in wxPropertyGrid code. 2015-05-31 19:20:11 +02:00
Artur Wieczorek
65dee275f2 Fix minor typos in comments. 2015-05-30 20:12:02 +02:00
Artur Wieczorek
ff685a7a4c Use wxID_ANY symbol for internal wxPG controls. 2015-05-30 20:10:09 +02:00
Artur Wieczorek
6dfd6f4930 Use wxSizerFlags instead of multiple argument Add() overload when constructing sizers in wxPG.
Set sizer flags in wxLongStringProperty::DisplayEditorDialog and wxPGArrayEditorDialog::Create in this more convenient way.
2015-05-29 21:05:30 +02:00
Artur Wieczorek
a210cb0bbf Don't use wxALIGN_CENTRE_VERTICAL flags when adding item to the vertical sizer in wxPG.
This flag shouldn't be used in vertical sizers (in wxLongStringProperty and wxPGArrayEditorDialog) because vertical alignment flags are ignored in such sizers and the assertion message is thrown in wxBoxSizer::DoInsert. This can be observed e.g. in propgrid sample when there is launched wxLongStringProperty or ArrayDoubleProperty editor.
2015-05-29 20:56:42 +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
f740e5f784 Optimize wxNumericPropertyValidator::Validate method.
Remove second unnecessary casting from wxWindow to wxTextCtrl and use wxTextCtr::IsEmpty() function to check directly if the text control contains any text instead of examining retrieved string value.
2015-05-27 21:13:09 +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
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
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Artur Wieczorek
5158ce4944 Add wxPropertyGridInterface::SetPropertyValue setter for native datatypes wxLongLong_t and wxULongLong_t.
And fix typo in wxUSE_LONGLONG macro name.
2015-04-04 00:33:25 +02:00
Artur Wieczorek
7c6943175b Prepare wxPG to build successfully when wxUSE_LONGLONG or wxUSE_DATETIME is disabled.
Make the code ready to build even when wxLongLong and wxDateTime types are not available.
2015-04-03 21:12:54 +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
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
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
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
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
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
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
55a385d7ad Add missing index initialization in one of wxEnumProperty ctor.
In every wxEnumProperty ctor, initial index value of selected choice must be set to zero.

See #16401.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-03 15:22:54 +00:00
Artur Wieczorek
7ef4c2d90b Fix regression caused by r76974 (inserting first choice item to wxEnumProperty).
This is a modified way of handling insertion of the first choice item to wxEnumProperty. Previous method based on special value (wxNOT_FOUND) used to indicate empty collection caused regression in wxPGProperty::DeleteChoice(). Currently, the size of the collection is checked directly in wxPGProperty::InsertChoice().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-02 21:19:41 +00:00
Artur Wieczorek
c632599855 Fix inserting first choice item to wxEnumProperty
Situation when when first choice item is inserted (in wxPGProperty::InsertChoice) to the empty collection must be handled in a special way. In order to do so:
1. The state when there are no choice items in wxEnumProperty object and hence no item is selected must be explicitly indicated (by special index value wxNOT_FOUND).
2. This initial state must be handled in a special way when there is determined new selection index after insertion.

See #16401.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-01 22:12:53 +00:00
Artur Wieczorek
8d601fed17 Use the same macro to implement all wxPG property classes.
Currently, WX_PG_IMPLEMENT_PROPERTY_CLASS macro is used to implement most of the property classes (and also property classes in the propgrid sample) but few property classes are implemented in alternative way, using separate IMPLEMENT_DYNAMIC_CLASS and WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN macros.
These two macros can be replaced with WX_PG_IMPLEMENT_PROPERTY_CLASS macro (which is a concatenation of both) so property class implementation can be unified.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-16 20:10:06 +00:00
Artur Wieczorek
63a9cc4c2e Use automatically generated ID values for wxPG sub-controls.
Currently in wxPG there are used fixed "magic" ID values to identify sub-controls and this can lead to side effects if these values overlap with ID values assigned to another controls in the application (like e.g. menu items).

Closes #13634.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-09 18:56:36 +00:00
Artur Wieczorek
954ee459b4 Fix wxEnumProperty::GetIndexForValue
GetIndexForValue should indicate that given property value does not exist by returning special index value(-1).

Closes #14450.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-08 15:56:34 +00:00
Vadim Zeitlin
ceb39f4174 Allow viewing read-only long string wxPropertyGrid properties values.
When wxLongStringProperty is read-only, it should still be possible to view
its value by opening the dialog normally used for editing it, otherwise this
value cannot be seen (nor copied, which is also useful sometimes) at all.

Closes #14945.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76631 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-31 14:21:23 +00:00
Vadim Zeitlin
31b8c29fcd Fix bugs in wxEnumProperty introduced by r76562.
The compilation fixes introduced run-time fixes due to not account for the use
of NULL pointers (which are not accepted as choices cache but are accepted as
choices values, go figure).

Closes #16266.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-18 00:24:13 +00:00
Vadim Zeitlin
ebc6161c59 Compilation fixes to wxPropertyGrid after r76558.
We can't use _() in the static wxChar* arrays: first, because this doesn't
compile and second because if it did compile, it still wouldn't work as no
message catalogs are loaded yet when the static arrays are initialized.

Use wxTRANSLATE() instead and arrange for the strings to be translated when
they are really used. This is rather ugly and perhaps it would be better to
avoid passing untranslated labels array to the property classes but at least
the code compiles again now.

See #16266.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 13:41:27 +00:00
Vadim Zeitlin
d94e807cfc Fix querying the value of wxEnumProperty in wxPropertyGridEditor.
Doing this changed the internal state of the control and resulted in the
choice not being updated.

Fix this by using wxPG_PROPERTY_SPECIFIC.

Closes #15449.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 12:29:26 +00:00
Paul Cornett
9b41d18b25 remove unused macro definitions
and limit others to the configurations which use them

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-04 16:44:30 +00:00
Vadim Zeitlin
c59b815f2c Fix several rounding problems with float values in wxPropertyGrid.
Loss of precision when converting floating point numbers to text and back
could result in several problems, notably comparing a valid value with the
minimum could fail after a round trip through wxSpinCtrl.

Fix this by using a specialization of NumericValidation() handling floating
point values specially and correctly.

Closes #15625.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-22 14:54:54 +00:00
Vadim Zeitlin
d183babc8d Allow retrieving wxPG_FLOAT_PRECISION and not just setting it.
It was possible to call SetAttribute() to change this attribute value but not
to get it back. Override DoGetAttribute() to also allow the latter.

See #15625.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-22 14:54:44 +00:00