Commit Graph

66982 Commits

Author SHA1 Message Date
Artur Wieczorek
bd1b5c4111 Simplify calls for numeric validation
Instantiate NumericValidation() template directly for required data type in DoValidation() and avoid this way intermediate conversions to another data types.
2019-06-29 11:12:41 +02:00
Artur Wieczorek
e96bc37066 Refactor template function to validate numeric wxPG properties
Duplicating the code of the entire NumericValidation() template function just for one specialization (for double value type) seems to be an overkill. Only small fraction of the code (to round the validated value) is really dependent on the value type and this part can be moved to the template function GetRoundedValue() which in turn can be specialized as required.
2019-06-29 11:12:40 +02:00
Artur Wieczorek
dbb727a716 Use dedicated function to check if the mouse button is pressed 2019-06-29 11:12:39 +02:00
Artur Wieczorek
7a5fbbc06f Use separate event handlers to handle various mouse events in wxPGSpinButton
One common event handler for all mouse events is less readable than code split into separate handlers dedicated to specific event type.
2019-06-29 11:12:38 +02:00
Artur Wieczorek
8c0a210a75 Make wxPGProperty an abstract class
wxPGProperty is intended to be only a base class for property classes and therefore shouldn't be instantiated directly.
2019-06-29 11:11:35 +02:00
Artur Wieczorek
315ff49136 Fix setting column widths after changing the page in wxPropertyGridManager
Whenever page is changed header column widths have to be adjusted and all columns have to updated.
2019-06-29 11:08:45 +02:00
Vadim Zeitlin
a45b0de345 Remove dependencies of rcdefs.h on the containing directory
This doesn't seem to be actually necessary, i.e. the (implicit)
dependency on the output file is enough and using it resulted in always
redoing the custom build step with MSVS 2019 which seems to always
consider directories as missing dependencies, at least according to its
msbuild (version 16.1.76+g14b0a930a7) diagnostic build log.
2019-06-28 17:57:31 +02:00
Vadim Zeitlin
0fc8b4921c Update the list of supported MSVS versions to include 2019
The binaries-related files haven't been updated yet because we don't
provide 2019 binaries yet (build/tools/msvs/officialbuild.bat still has
to be updated too).
2019-06-28 17:53:10 +02:00
Vadim Zeitlin
59228f1224 Add MSVS 2019 solution file
Also use its native v142 toolset by default when using this version.
2019-06-28 17:50:55 +02:00
Ilya Sinitsyn
feacaf8714 Use wxWindow as a control for wxGridCellEditor
Use wxWindow instead of wxControl in wxGridCellEditor to allow using
any window as an editor control, as it doesn't need to be a wxControl.

Closes https://github.com/wxWidgets/wxWidgets/pull/1370
2019-06-28 16:47:56 +02:00
laptabrok
ea68934b8e Work around problems with wxGLCanvas resizing under macOS 10.14.5
This OS update has broken resizing of NSOpenGLView, which worked
correctly up until to 10.14.4.

Work around it by preventing the default implementation of update from
being executed. It's not clear why should it help with the problem, but
it does.

Closes https://github.com/wxWidgets/wxWidgets/pull/1354

Closes #18402.
2019-06-28 14:11:01 +02:00
Dummy
668f74f4d9 Fix regression in wxDC::GetPPI().y under GTK 2
This fixes a typo in 3dc16a7419 which
prevented m_mm_to_pix_y from ever being set to non-zero value.

Closes #18425.
2019-06-28 13:55:45 +02:00
Walter Cheuk
9aef9e59fc Traditional Chinese translations update from Walter Cheuk 2019-06-28 13:42:33 +02:00
Vadim Zeitlin
906fc891c8 Disable LZMA support when --disable-sys-libs is used
It seems better to disable LZMA rather than silently building the
binaries depending on an external library when we were explicitly
requested not to do it.
2019-06-27 16:18:20 +02:00
Vadim Zeitlin
789d374650 Fix line numbers in stack traces under macOS
The last digit was truncated as the code discarded the trailing "\n"
which wasn't really there, as ReadLine() helper function already removed
it, and so ended up removing the last digit of the line number,
resulting in mostly plausibly looking but completely wrong line
information in the assert dialog.
2019-06-27 16:12:26 +02:00
Anton Triest
584e2715eb Add XRC handlers for wxDataViewCtrl and related classes
The same handler is also used for wxDataViewListCtrl and
wxDataViewTreeCtrl.

Closes #18424.
2019-06-27 12:39:53 +02:00
Vadim Zeitlin
6ee5184171 Check window validity in wxNonOwnedWindow::Update() in wxMac too
This was already done in the other functions, but not this one,
resulting in a crash if it was called for an object with null m_nowpeer
(e.g. before it's created or when it's not a real wxNonOwnedWindow
object as when it's a subobject of wxTDIChildFrame).

See #18423.
2019-06-26 18:37:31 +02:00
Razvan Macovei
7f768eda2d Fix wxMDIChildFrame screen position in TDI-based implementations
This notably fixes the problem with wxAuiMDIChildFrame::GetScreenRect()
returning the wrong window position since the changes of
c1bcf16eb9.

Closes #18423.
2019-06-26 18:04:16 +02:00
Vadim Zeitlin
8afa383097 Use PlatformToolsetVersion in MSVC binaries usage instructions
This should work for any compiler version, at the cost of being slightly
less clear.

Closes #18422.
2019-06-25 17:00:27 +02:00
Vadim Zeitlin
fb2f5916b2 Add backticks around more symbols in MSW install docs
No real changes, just use backticks more consistently and extensively.
2019-06-24 18:28:25 +02:00
Vadim Zeitlin
60a8ceb57c Fix more occurrences of $(variables) eaten by Doxygen
This replaces and extends the previous commit by using `$var` instead of
`$(var)` when this makes sense and using the ugly workaround for Doxygen
expanding environment variables even inside Markdown backticks elsewhere.

Also use backticks around more strings.
2019-06-24 18:19:23 +02:00
Vadim Zeitlin
a5d7f95877 Preserve "$wxwin" verbatim in Doxygen output
It turns out that Doxygen expands $(VAR) into the actual value of the
VAR environment variable on the machine where it runs, which is
definitely not what we want in the instructions telling people to use
"$wxwin" in their projects, so remove the parentheses to prevent Doxygen
from expanding it.

Another alternative would be to escape "$" with a backslash, but this
would make the source markdown file uglier.
2019-06-24 02:37:46 +02:00
Igor Korot
b383d539b5 Make png2c script compatible with Python 3 too
Use print() and byte strings to make the code compatible with Python 3,
while also keeping it compatible with Python 2 (>= 2.6, at least).

Closes https://github.com/wxWidgets/wxWidgets/pull/1348
2019-06-21 02:13:46 +02:00
iwbnwif
7c7c717389 No longer return fixed values from wxGauge::GetBestSize() in wxGTK
Under wxGTK, wxGauge was returning fixed values for height and width.
This meant that the gauge would not center correctly in a sizer,
particularly under GTK+ 3 where the default gauge height is just a few
pixels.

Following this change, wxGauge renders correctly on GTK+ 3 and matches
the reference widget display in the gtk3-widget-factory app.

Note, this change will also result in a slimmer widget on GTK+ 2, but
the gauge height can be forced using wxGauge::SetMinSize() on the older
toolkit.

The gauge presentation is totally theme dependent under GTK+ 3. For
example, the user can have thicker gauges by setting the following in
their ~/.config/gtk-3.0/gtk.css file:

progress, trough {
  min-height: 20px;
}

Closes https://github.com/wxWidgets/wxWidgets/pull/1353
2019-06-21 02:05:19 +02:00
Vadim Zeitlin
e081d2210f Make wx/richtext/richtextstyledlg.h self-sufficient
Don't require including wx/dialog.h before including this one.

Closes #18420.
2019-06-20 16:06:36 +02:00
Graham Dawes
a8257855c3 Fix mismatched malloc/delete in wxQt wxApp
m_qtArgv elements are allocated using wxStrdupA(), so must be free()d
and not deleted.

Closes https://github.com/wxWidgets/wxWidgets/pull/1363
2019-06-20 16:00:35 +02:00
Vadim Zeitlin
61e84dc2fa Ignore MSVC linker warnings about empty object files
A number of object files in wxCore can end up being empty due to the
corresponding wxUSE_XXX options being set to 0. This is normal and
getting tons of warnings from MSVC during the build about it wasn't
helpful.

It turns out that these warnings can be suppressed by using the
undocumented, but described at

http://www.geoffchappell.com/studies/msvc/link/link/options/ignore.htm

"/ignore" option, so do this to finally get a clean build.
2019-06-20 01:54:01 +02:00
Vadim Zeitlin
63a40a09b2 Preserve mnemonics in ellipsized labels
Ellipsization code was completely broken when used with the usual
control label strings containing mnemonics: it simply stripped the
mnemonics completely, losing them even if the label wasn't actually
ellipsized, and turned "&&" into a mnemonic. I.e. "&Plug && play"
appeared without underlined "P" but with underlined space before "play"
before.

Fix this by pretending that all ampersands in the string to be
ellipsized have zero width. This is not precise, as the result of
GetPartialTextExtents() for a string with the ampersands is not exactly
the same as the sum of its result for the string without the ampersands
and the width of the ampersands themselves, but it should be pretty
close and unlikely to result in any problems in practice for the
controls labels.

At the very least this fixes the completely wrong behaviour of the
controls on the "Static" page of the widgets sample, where ellipsization
is enabled by default and setting the label text with mnemonics didn't
work at all.
2019-06-20 01:48:33 +02:00
Vadim Zeitlin
30726437c0 Fix the result width check in the ellipsization unit test
When processing mnemonics, the resulting string should still contain
them and they need to be stripped before measuring its width, but the
code didn't do it.

This didn't prevent the tests from passing, but only due to another bug
in ellipsization code itself, which lost the mnemonics completely. As
this bug is about to be fixed, the test needs to take mnemonics into
account properly now.
2019-06-20 01:46:28 +02:00
Vadim Zeitlin
a6b8774636 Run label unit tests for ellipsized wxStaticText too
Check that the public methods still behave as expected even if the
displayed value is different because it is ellipsized.
2019-06-20 01:45:26 +02:00
Vadim Zeitlin
05627cf54c Make wxControlBase::DoEllipsizeSingleLine() private function
This function doesn't need to be a method of wxControl, so don't make it
one.

No real changes, just improve the encapsulation.
2019-06-20 01:44:27 +02:00
Vadim Zeitlin
8fcedbed7b Remove event table from static page in the widgets sample
The code was confusing as it used Bind() for some handlers, event table
for some others and, for the 3 buttons in the middle column, it actually
managed to use both.

Get rid of the event table completely to make this more clear.
2019-06-19 19:49:43 +02:00
Vadim Zeitlin
672847772d Fix an off-by-1 bug in wxControl::FindAccelIndex() after "&&"
This resulted in wrong letter being underlined in wxGenericStaticText
when the mnemonic occurred after "&&" (i.e. an actual ampersand) in the
label.

Add unit test which passes now, but would fail before on the last check.
2019-06-19 19:40:05 +02:00
Vadim Zeitlin
ee15a4c9e4 Avoid assertions when using wxGenericStaticText in widgets sample
Clicking on the "Generic wxStaticText" box resulted in several
assertions because the markup string contained both a single "&" and
a "&" used for the mnemonic. Double the former to avoid misinterpreting
it as a mnemonic character too.
2019-06-19 19:31:11 +02:00
Vadim Zeitlin
a93b1416a7 Add unit tests for wxControl::SetLabelMarkup() too
Check that "&" is interpreted correctly.
2019-06-19 19:18:48 +02:00
Vadim Zeitlin
21babfa2d0 Test a couple more cases in wxControl label unit test
Check that double ampersand also works correctly.
2019-06-19 19:13:00 +02:00
Vadim Zeitlin
0d35c3f36a Put all wxControl label unit tests inside a loop
There doesn't seem to be any reason to write some of them out
explicitly.

No real changes.
2019-06-19 19:08:38 +02:00
Vadim Zeitlin
5e98099699 Add unit test for wxGenericStaticText label
Run the same tests for it as for the native wxStaticText too.
2019-06-19 18:55:52 +02:00
Vadim Zeitlin
d22321b14f Rewrite wxControl label unit test without CppUnit macros
Also remove the macros used in the test to perform the same tests for
wxStaticText and wxCheckBox and use a helper function instead, making
the code more clear and extensible.

No real changes.
2019-06-19 18:51:40 +02:00
Vadim Zeitlin
3f7c3f0190 Don't implement wxStaticText::WX[SG]etVisibleLabel() in wxGTK
These functions are never used in this port, so make it clear, both in
the code and in the comment preceding them.
2019-06-19 18:15:58 +02:00
Vadim Zeitlin
b53e9e2006 Rename wxStaticText::Do[SG]etLabel() to WX[SG]etVisibleLabel()
The names of these methods were confusing because they implied that they
were the actual implementations of the public [SG]etLabel(), while this
wasn't at all the case.

Give them then ames describing what they really do and also update the
comments to hopefully be more clear.

No real changes.
2019-06-19 18:15:57 +02:00
Vadim Zeitlin
e3a62efd43 Micro optimization in wxStaticTextBase::UpdateLabel()
Avoid an unnecessary wxString copy.
2019-06-19 18:15:57 +02:00
Vadim Zeitlin
8f47728fd2 Merge branch 'grid-appearance-fixes'
Draw row/columns labels better in the disabled state and improve
appearance of wxGrids with a border.

See https://github.com/wxWidgets/wxWidgets/pull/1358
2019-06-19 16:44:16 +02:00
Mick Waites
af5b122b2b Stop multiple selection changed messages being sent when calling DeleteChildren on a TreeItem. 2019-06-19 14:05:31 +01:00
Paul Cornett
8a254bf598 Fix wxGLCanvas painting glitch during resize with GTK3
Newly exposed window areas would sometimes not be painted after drag resize.
2019-06-18 09:50:27 -07:00
Vadim Zeitlin
5b525ed201 Advise using a border with a wxGrid not showing column/row labels
In this case a border can be useful to visually separate the grid from
the surrounding area as without it there is no separation at all.
2019-06-18 00:58:51 +02:00
Vadim Zeitlin
18956125d3 Fix copy-and-pasto in wxGrid::HideColLabels() documentation
The old sentence didn't make sense for this function.
2019-06-18 00:55:16 +02:00
Artur Wieczorek
c5d73f819a Keep track of wxHeaderCtrl events in widgets sample 2019-06-16 19:52:42 +02:00
Artur Wieczorek
2a24991110 Use wxVector<> instead of macro-based wxArray 2019-06-16 19:51:52 +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