Commit Graph

39762 Commits

Author SHA1 Message Date
Vadim Zeitlin
5e53b22bd4 Add wxGraphicsContext::GetWindow()
This method allows to retrieve the window this context is associated
with, if any.

Add "wxWindow*" argument to wxGraphicsContext ctor and provide the
window pointer to it when available, i.e. when creating the context from
a wxWindow directly or from wxWindowDC, which is also associated with a
window, in platform-specific code.

No real changes yet.
2018-11-06 03:36:53 +01:00
Artur Wieczorek
d735e444f1 Refer to wxPGProperty associated with wxPGComboBox editor in all drawing operations
Store wxPGProperty for which wxPGComboBox editor is activated and use
this reference in all further drawing operations instead of retrieving
each time currently selected wxPGProperty which during the entire
lifetime of the editor is the same as property selected on editor
activation.

See #18211.
2018-11-05 22:38:39 +01:00
Vadim Zeitlin
190601c47f Translate the warning shown by wxHyperlinkCtrl::SendEvent()
As anything shown to the user, this string must be translated, so use
_() around it instead of wxT().

Also reword the string a little; remove unnecessary call to .c_str() and
use a const reference instead of making a copy of the URL unnecessarily.
2018-11-05 19:38:18 +01:00
Vadim Zeitlin
3e246c767f Return true from wxHyperlinkCtrl::MSWOnNotify()
As SendEvent() not only sends the event about clicking on the link, but
also opens the link in the default browser if this event was not
processed (which wasn't really obvious from its name, so at least
mention it in its comment), the event is actually always handled and so
MSWOnNotify() must return true, not false (and definitely not 0) to
indicate it.

Closes #18266.
2018-11-05 19:35:44 +01:00
Vadim Zeitlin
1c68979fb4 Move wxCTZ() documentation to the appropriate place
The documentation comment belongs to interface/wx/math.h, not the header
under include.

Also change the argument type to wxUint32 as the non-gcc version only
works for 32 bit values.
2018-11-05 19:27:53 +01:00
Mick Phillips
291a880d0c Synchronize joystick events between all ports
Generate wxJoystickEvent with the same fields under all platforms by
making the Linux and macOS versions follow MSW convention of using
"1 << N" for the changed button.

Add GetButtonOrdinal() accessor which can be used to retrieve just N.

Closes #18233.
2018-11-05 19:27:36 +01:00
Vadim Zeitlin
cf980cf5e3 Merge branch 'cmake-gstreamer-d2d' of https://github.com/MaartenBent/wxWidgets
CMake improvements: better gstreamer and Direct2D support.

See https://github.com/wxWidgets/wxWidgets/pull/1014
2018-11-05 18:51:10 +01:00
Artur Sochirca
fdee5e7bc9 Replace another occurrence of deprecated wxUSE_GENERICDATAVIEWCTRL
Use wxHAS_GENERIC_DATAVIEWCTRL instead, to complete the changes of
bc92ed9d85, see
https://github.com/wxWidgets/wxWidgets/pull/827

Closes https://github.com/wxWidgets/wxWidgets/pull/1016
2018-11-05 18:44:59 +01:00
Václav Slavík
aaa13cf520 Fix font description for non-. decimal separators
Fix wxNativeFontInfo::ToString and FromString to work correctly under
locales that don't use '.' for decimal separator. The code incorrectly
parsed descriptions using ToCDouble and this '.', but wrote them out
using locale's native separator. Fixed by using FromCDouble for output
too.
2018-11-05 18:30:09 +01:00
Stefan Csomor
b77aa4782d Forcing paint after show on 10.14
layer-backed views do not get a refresh when shown, but wx-user code might depend on the assumption that they do
2018-11-05 14:37:54 +01:00
Vadim Zeitlin
bf97715972 Support NULL column in wxDataViewCtrl::GetItemRect() in wxOSX
Emulate support for non-specified column by using the first and, if
necessary, last columns in this case.
2018-11-04 18:35:07 +01:00
Vadim Zeitlin
fad50e74b7 Fix wxDataViewCtrl::GetItemRect() in wxGTK and enable its test
A couple of fixes compared to the previous commit:

- Use the correct gtk_tree_view_get_cell_area() rather than
  gtk_tree_view_get_background_area() which doesn't work correctly
  for the items which are not shown because their parent is collapsed.
- Translate logical coordinates to physical ones using
  gtk_tree_view_convert_bin_window_to_widget_coords().

With these fixes, the unit tests for this function pass and can now be
enabled under wxGTK as well.

See https://github.com/wxWidgets/wxWidgets/pull/990
2018-11-04 18:28:59 +01:00
Umberto Carletti
94a2595f5b Add GTK implementation of wxDataViewCtrl::GetItemRect()
This function returns a wxRect of the given wxDataViewItem. If no column
is provided, the width will be the sum of all the visible columns widths.

See https://github.com/wxWidgets/wxWidgets/pull/990
2018-11-04 18:28:34 +01:00
Vadim Zeitlin
9460038b3f Return empty rectangle from GetItemRect() if item is not visible
This was already the case if the item was not visible because its parent
was not expanded, but now make it also true for the items which are not
visible due to the current scrollbar position.

Add unit tests checking for this and also verifying that GetItemRect()
returns the coordinates in the physical window coordinates.
2018-11-04 18:28:33 +01:00
Vadim Zeitlin
baf3dda57e Merge branch 'editlbox-fixes'
Cosmetic fixes to wxEditableListBox buttons appearance and some code
modernization.

See https://github.com/wxWidgets/wxWidgets/pull/1012
2018-11-04 17:56:10 +01:00
Vadim Zeitlin
31f5f2dc08 Rename a variable in wxEditableListBox code for clarity
Rename "centered" into "flagsCentered" to make it more obvious that this
variable contains wxSizerFlags.
2018-11-04 17:54:52 +01:00
Vadim Zeitlin
c3779f2e5d Clarify ItemToRowJob in generic wxDataViewCtrl code
Rename its m_ret field to a more clear and more consistent with
RowToTreeNodeJob::m_current name and also make m_current, unlike m_ret,
0-based from the beginning instead of having to subtract 1 from it in
GetResult().

There should be no changes in the class behaviour.
2018-11-04 17:29:24 +01:00
Vadim Zeitlin
4b8fed3ad6 Make ItemToRowJob::m_item const
No real changes, just indicate that this member variable doesn't change.
2018-11-04 17:21:09 +01:00
Vadim Zeitlin
1f0aad61e2 Use standard naming convention for ItemToRowJob members
Use "m_" prefix for all of them.

No real changes.
2018-11-04 17:20:11 +01:00
Vadim Zeitlin
ed20421181 Clarify RowToTreeNodeJob in generic wxDataViewCtrl code
Get rid of hardcoded, without any explanation, "-2" value passed to this
class ctor and instead initialize its m_current member to -1 and explain
why do we do it and increment it after processing the current item, not
before, in operator().

No changes in behaviour.
2018-11-04 17:17:50 +01:00
Vadim Zeitlin
ada5de3d0d Fix wxDataViewCtrl::GetItemRect() for collapsed items
Calling GetItemRect() for an item which was not currently visible
because its parent was collapsed resulted in silently returning the
value for a wrong value before the recent fix to GetRowByItem() and in
a crash after it because GetTreeNodeByRow() returned null when passed
invalid row index.

Fix this by explicitly checking whether the item is shown and just
returning an empty rectangle instead.

Also document this behaviour and add a unit test for it.
2018-11-04 17:15:42 +01:00
Vadim Zeitlin
685f9ff57d Fix bug in GetRowByItem() in generic wxDataViewCtrl
If the item was not found at all, which can happen if all its parents
are not expanded, this function still returned a valid but completely
wrong row index.

This affected many functions which could call it for the items which
were not necessarily visible, i.e. all of them except for the event
handlers as events can only affect the visible items, including but not
limited to SetCurrentItem(), all the selection-related functions, all
the expansion-related functions, EnsureVisible(), HitTest() and
GetItemRect().
2018-11-04 17:03:16 +01:00
Maarten Bent
9554cb49d8 Fix build when enabling wxD2D_DEVICE_CONTEXT_SUPPORTED
Add missing GUID and function for dynamic linking.
2018-11-04 16:49:14 +01:00
Vadim Zeitlin
739ce60552 Remove the unused RowToTreeNodeJob::m_parent variable
This variable was assigned to but never used.

Also remove the corresponding ctor argument which was only used to
initialize this unused variable.
2018-11-04 14:58:23 +01:00
Vadim Zeitlin
3d4a47a6bb Change RowToTreeNodeJob::m_row type to int and make it const
It doesn't make much sense to use an "unsigned int" variable only to
cast it to int everywhere where it's used. Just make it "int" from the
get go and have a single cast to int in the caller.

Also make m_row const as it never changes.
2018-11-04 14:56:36 +01:00
Vadim Zeitlin
05ae63e40a Use standard naming convention for RowToTreeNodeJob members
Prefix them with "m_" to indicate that they're member variables.

No real changes.
2018-11-04 14:55:43 +01:00
Vadim Zeitlin
84d3ee10cc Merge branch 'simplify-imagelist'
Merge Mac-specific and generic wxImageList versions and modernize the
code.

See https://github.com/wxWidgets/wxWidgets/pull/1001
2018-11-04 14:15:16 +01:00
Daniel Kulp
26f0e816ca Send wxEVT_AUINOTEBOOK_PAGE_CHANGED after changing the page
For consistency with the other similar events and because it is more
useful for the code handling it, send this event when the new page is
already shown instead of doing it before showing it.

Closes https://github.com/wxWidgets/wxWidgets/pull/1007
2018-11-03 22:56:15 +01:00
Vadim Zeitlin
f24892127d Remove unnecessary wxUSE_TOOLTIPS check in wxEditableListBox code
SetToolTip() is defined (as doing nothing) even if wxUSE_TOOLTIPS==0, so
just call it directly as this allows to save on both the preprocessor
check and the check for the button validity.
2018-11-03 22:45:37 +01:00
Vadim Zeitlin
397b5ff01e Use wxSizerFlags-based API in wxEditableListBox
No real changes, just make the code more clear by using wxSizerFlags.
2018-11-03 22:43:10 +01:00
Vadim Zeitlin
18e2b58e5b Remove unnecessary border around wxEditableListBox buttons
This border was added under MSW for some reason, but doesn't seem to be
necessary (any longer?).

Closes #18265.
2018-11-03 22:39:57 +01:00
Artur Wieczorek
63c602c3d2 Explicitly declare iterators in the function templates 2018-11-02 12:10:22 +01:00
Paul Cornett
dfb48b47f5 Add version checks for gtk_widget_get_scale_factor() 2018-11-01 11:06:53 -07:00
Paul Cornett
ed442cd574 Draw background before drawing toolbar bitmap.
The background may not have been painted for us.
2018-11-01 11:05:41 -07: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
Artur Wieczorek
5fbe3cab76 Don't reset wxPGProperty editor if focus is switched between its components
As long as focus is being switched only between subcontrols of the active editor the state of the edited wxPGProperty remains unchanged and there is no need to explicitly reset the editor.
Unwanted editor resets could happen if such internal focus changes would be captured in EVT_IDLE handler.

Closes #18162.
2018-11-01 18:11:58 +01:00
Paul Cornett
dc0cf732a2 Provide scale factor to wxGtkStyleContext where it might matter. 2018-11-01 09:58:27 -07:00
Paul Cornett
5ff0d3a458 Improve wxRendererGTK drawing with HiDPI 2018-11-01 00:11:31 -07:00
Vadim Zeitlin
4405176bb9 Return correct scale factor for not yet realized windows in wxGTK
wxWindow::GetContentScaleFactor() always returned 1 before the window
was shown in wxGTK, which was rather annoying as typically icons are
initialized on application startup, i.e. before showing the windows, and
so the wrong scale factor was silently used for them.
2018-10-31 20:24:06 -07:00
Vadim Zeitlin
8e817f8a0e Don't send events from wxTextCtrl::ChangeValue("") in wxGTK
ChangeValue() must not send events, but did in wxGTK when changing the
contents of a wxTextCtrl to be empty when it had been non-empty before.

Closes #18264.
2018-11-01 02:04:01 +01:00
Vadim Zeitlin
81c67c3686 Make wxDC::GetPPI() monitor-dependent in wxGTK3
Return the PPI for the display on which the associated window is shown
and not the main display PPI.
2018-11-01 02:02:47 +01:00
Vadim Zeitlin
5ee0edde99 Merge branch 'propagate-inform-first-dir'
Fix some layouts involving wxWrapSizer by correctly propagating
InformFirstDirection() call to the nested sizers that need it.

See https://github.com/wxWidgets/wxWidgets/pull/988
2018-11-01 00:13:18 +01:00
Vadim Zeitlin
4ad9cde380 Use the new wxDisplay(wxWindow*) ctor to simplify the code
Make the code simpler and, in a couple of places where the fall back to
the primary display in case wxDisplay::GetFromWindow() returned -1 was
missing, also more correct.
2018-11-01 00:06:34 +01:00
Vadim Zeitlin
f57cb6c1d9 Add wxDisplay(wxWindow*) ctor with fall back on primary display
This is more convenient than calling GetFromWindow() and then checking
its return value.
2018-11-01 00:02:47 +01:00
Vadim Zeitlin
c01328c2da Don't crash due to accessing invalid bitmaps in wxAUI code
Neither GetWidth() nor GetScaledWidth() (nor the corresponding
height-related methods) can be called if the bitmap is invalid and the
resulting assert led to a crash when it happened in wxAuiToolBarArt
drawing code, as it was triggered on each redraw.

Just use bitmap size of (0, 0) if we're not going to draw it anyhow.

Closes #18263.
2018-10-31 23:43:17 +01:00
Vadim Zeitlin
a316942c18 Don't use "extern" when initializing wxCurrentPopupWindow
Avoid (harmless) warning about the variable being initialized and
declared "extern" added by 56c4191168.
2018-10-31 23:26:02 +01:00
Evileye
28f7e6130d Fix wxDateTime::ParseFormat() when matching TZ offset and in DST
Don't skip MakeFromTimeZone() for the current time zone, this is still
necessary.

Fixes a failure in the unit tests when running during a DST period with
TZ=Europe/London, for example.

Closes https://github.com/wxWidgets/wxWidgets/pull/966
2018-10-31 23:16:03 +01:00
Vadim Zeitlin
83a7b49954 Always store wxBitmap objects in wxGenericImageList
There doesn't seem to be any point in storing pointers to wxBitmap or
wxIcon and storing the objects directly allows to avoid an extra heap
allocation and all the code dealing with freeing memory when replacing
or removing images from the list, making things much simpler.

Also use wxVector<> for storage instead of the obsolete and ugly
wxObjectList.

There shouldn't be any user-visible changes.
2018-10-31 15:35:30 +01:00
Vadim Zeitlin
3b5441f59e Deprecate wxGenericImageList::GetBitmapPtr()
This function was in effect deprecated since 2.5.5 (!) and it's not
finally time to do it formally and to stop using it in wxWidgets own
code.
2018-10-31 15:35:30 +01:00