Commit Graph

18310 Commits

Author SHA1 Message Date
Maarten Bent
137713e0c8 Add framework for Per-Monitor DPI Awareness on Windows
React to the WM_DPICHANGED event and update the size of the  child windows and
the top-level window. Scale the minimum and maximum window size to the new DPI.

Only react to WM_DPICHANGED when DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 is
used.
2019-08-24 22:30:11 +02:00
Vadim Zeitlin
ea965327eb Add wxString::shrink_to_fit() as synonym for Shrink()
Provide C++11 std::string-compatible method name too.
2019-08-22 00:01:36 +02:00
Vadim Zeitlin
2dbdbe1927 Merge branch 'mac-opengl-resize'
Really fix Mac wxGLCanvas resize under macOS 10.14.5.

See https://github.com/wxWidgets/wxWidgets/pull/1492

Closes #18402.
2019-08-21 23:53:27 +02:00
Maarten Bent
9c193e1774 Add wxWindow::GetDPI()
This is simpler to use than wxDisplay(window).GetPPI() which was used
instead of it so far in all ports and can be implemented more
efficiently for wxMSW.

Remove wxGetWinTLW, GetDPI already tries to get the top window.
2019-08-21 19:30:07 +02:00
Vadim Zeitlin
4b227835ac Merge branch 'svg-drawtext' of https://github.com/MaartenBent/wxWidgets
Fixes and improvements to wxSVGFileDC::Draw[Rotated]Text().

See https://github.com/wxWidgets/wxWidgets/pull/1466
2019-08-20 13:27:26 +02:00
Vadim Zeitlin
ffd424debb Merge branch 'mswdc-draw-point-checkbox' of https://github.com/MaartenBent/wxWidgets
Draw the same shape in wxDC::DrawCheckMark() under all platforms and
provide wxRenderer::DrawCheckMark() for drawing the platform-specific
shape.

Also fix wxGCDC::DrawPoint() to use the default one point wide pen.

See https://github.com/wxWidgets/wxWidgets/pull/1471
2019-08-20 13:25:28 +02:00
Vadim Zeitlin
c2e6b86786 Add WX_IS_MACOS_AVAILABLE_FULL availability check macro
We could change WX_IS_MACOS_AVAILABLE itself to be a variadic macro, but
this would be significantly more complex and doesn't seem warranted.
2019-08-20 11:14:10 +02:00
Vadim Zeitlin
1d63c8b11d Fix typo in a comment
No real changes.
2019-08-20 11:10:57 +02:00
Paul Cornett
b200c661ed Fix wxPropertyGrid headers so they can be compiled independently
See #18465
2019-08-15 17:27:07 -07:00
Maarten Bent
2874dab7f0 Add DrawCheckMark and GetCheckMarkSize to wxRendererNative
Show its use in the render sample. Also use the recently added GetExpanderSize
for the size of DrawTreeItemButton.
2019-08-10 13:42:04 +02:00
georgp24
8e41677989 Fix wxX11 build with --disable-graphics_ctx build option.
Add missing #if wxUSE_CAIRO checks.

Closes https://github.com/wxWidgets/wxWidgets/pull/1472
2019-08-10 00:00:18 +02:00
Maarten Bent
cdc004a941 Use generic DrawCheckMark in MSW wxDC
Use the generic implementation, so it looks like the check marks on all other
platforms and graphics contexts and not like a Windows control.
2019-08-07 21:21:29 +02:00
Stefan Csomor
0044bf4a7a macos 10.15 build
adapt to removed headers, add version defines
2019-08-07 12:05:13 +02:00
Kvaz1r
88f04f551e Fix changing colours of wxSpinCtrl in wxMSW
Ensure that the new colours are actually shown after Refresh() is called
by refreshing the text part of the control as well, and not just the
spin button.

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

Closes #12382.
2019-08-06 00:08:19 +02:00
oneeyeman1
43c519e04f Add wxListCtrl::IsVisible()
Allow checking if the given item is (at least partially) visible on
screen.

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

Closes #9949.
2019-08-05 13:46:15 +02:00
Vadim Zeitlin
3bb74df215 Merge branch 'staging' of https://github.com/stahta01/wxWidgets_PR
Fix Cygwin 64 bit build issues for wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/1460
2019-08-05 13:25:03 +02: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
c623d9cfc5 Remove references to unused internal flags 2019-08-04 20:20:48 +02:00
Artur Wieczorek
b06a9d227f Replace wxPG_FILE_DIALOG_TITLE and wxPG_DIR_DIALOG_MESSAGE attributes with wxPG_DIALOG_TITLE
Current wxPG_FILE_DIALOG_TITLE and wxPG_DIR_DIALOG_MESSAGE attributes can be used to customize editor dialog titles only for wxFileProperty and wxDirProperty, respectively. New wxPG_DIALOG_TITLE property is applicable to all properties derived from wxEditorDialogProperty so not only editor dialog titles for wxFileProperty and wxDirProperty can be set but also for wxFontProperty, wxLongStringProperty, etc.
wxPG_FILE_DIALOG_TITLE and wxPG_DIR_DIALOG_MESSAGE attributes are marked obsolete.
2019-08-04 20:20:19 +02:00
Igor Korot
c525784f77 Allow disabling saving wxFileConfig data when it is destroyed
This can be useful to avoid saving the changes performed by the user if
this turns out to be undesirable, for whatever reason.

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

Closes #13788.
2019-08-04 19:15:39 +02:00
Maarten Bent
b0152155c0 Implement GetContentScaleFactor for wxMSWDCImpl 2019-08-04 14:16:53 +02:00
Kvaz1r
a2f37a9ed5 Fix client coordinates mapping for wxSpinCtrl in wxMSW
Add MSWDoClientToScreen() and MSWDoScreenToClient() helpers and use them
with the correct HWND in DoClientToScreen() and DoScreenToClient()
overridden in wxSpinCtrl, i.e. the HWND of the "buddy" text control and
not the spin button, which is the main HWND of this control.

This notably fixes wxSpinCtrl::GetScreenPosition() which returned the
position of the spin button.

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

Closes #18455.
2019-08-03 13:26:56 +02:00
Tim Stahlhut
92b5f10840 Add message wxJoystick requires wxThread under MSW 2019-08-03 01:13:22 -04:00
Tim Stahlhut
f941b50c6b Use cygwin native timeval
__ms_timeval does not exist unless winsock.h or winsock2.h is included.
So, test for __WINDOWS__ before using __ms_timeval.

Fixes #18456
2019-08-02 17:44:21 -04:00
Tim Stahlhut
04cf2038e9 Ensure visibility of needed Cygwin declarations
Dl_info requires __GNU_VISIBLE be defined; and,
pthread_setconcurrency requires  __XSI_VISIBLE >= 500.
Defining _GNU_SOURCE satifies both of the above needs.
2019-08-02 17:32:51 -04:00
ousnius
2a2fa8c5af Allow expanding environment variables in XRC file paths
Add a new flag wxXRC_USE_ENVVARS for wxXmlResourceFlags that triggers a
call to wxExpandEnvVars() for bitmap, icon and animation paths.

This flag is not set by default to avoid silently changing the behaviour
of existing applications.

Closes https://github.com/wxWidgets/wxWidgets/pull/1445
2019-07-31 23:57:40 +02:00
Vadim Zeitlin
47d58db2fb Restore, but deprecate, LOGFONT conversion functions in wxMSW
Even though these functions were declared in a header called private.h,
some code outside the library still used them, notably the popular
wxPdfDocument library.

So partially revert 72a225924d and these
functions back, and just mark them as deprecated for now.
2019-07-31 00:55:50 +02:00
Lauri Nurmi
4739b9dedd Add C++20-style starts_with()/ends_with() functions to wxString
C++20 introduces these two functions, along with some overloads, to
std::string. Add similar functions to wxString, which simply call the
already existing StartsWith() and EndsWith().

Closes https://github.com/wxWidgets/wxWidgets/pull/1452
2019-07-31 00:52:29 +02:00
Stefan Csomor
b0a173a460 Changed the Mac font implementation to use full font names instead of (#1416)
* Switch to using PostScriptNames internally, keeping font family name on public API

* solving roundTrip Problem of wxNativeFontInfo only
2019-07-28 14:41:55 +02:00
Vadim Zeitlin
fb2c17c193 Merge remote-tracking branch 'sunset/process-enter'
Fix wxTE_PROCESS_ENTER logic for wxMSW and wxGTK too.

See https://github.com/wxWidgets/wxWidgets/pull/1415

Closes #18273.
2019-07-26 18:02:08 +02:00
Vadim Zeitlin
9d92ba185c Fix truncating CJK mnemonics in control labels
13068d3603 introduced code for stripping
CJK mnemonics (i.e. trailing " (&X)") from the menu items, but due to
the use of wxStripMenuCodes() in wxControl::GetLabelText(), it also
applied to the control labels, resulting in wrongly measuring their size
(because the text used for measurement didn't include the "(&X)" part)
and truncating them in display.

Fix this by adding an explicit wxStrip_CJKMnemonics and using it only in
the code dealing with the menu item labels. This requires more changes
than just modifying GetLabelText() to use some wxStrip_NoCJKMnemonics
flag, but is more compatible as it's not impossible that some existing
code using wxStripMenuCodes() could be broken by this change too, while
now the existing behaviour is preserved.

Also improve wxStrip_XXX documentation.

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

See #16736.

Closes #18452.
2019-07-26 17:59:47 +02:00
Vadim Zeitlin
8ea46e70c5 Merge branch 'clang-link-error-and-semicolon-warnings' of https://github.com/MaartenBent/wxWidgets
Fix clang warnings about extra semicolons and a link error.

See https://github.com/wxWidgets/wxWidgets/pull/1434
2019-07-26 17:58:27 +02:00
Vadim Zeitlin
d97c2ed9e3 Merge branch 'grid-frozen'
Add support for freezing wxGrid columns and/or rows.

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

See https://github.com/wxWidgets/wxWidgets/pull/952
2019-07-26 17:57:23 +02:00
Vadim Zeitlin
e8a7bae0a7 Alternative clang on Windows link fix
Remove WXDLLIMPEXP_BASE from wxObjectEventFunctor declaration: this
class only has inline methods and so doesn't define any functions that
would need to be exported from the DLL.

This reverts commit c0f2f38011.
2019-07-21 21:22:55 +02:00
Maarten Bent
c0f2f38011 Fix linking to wxObjectEventFunctor with Clang on Windows
Linking specific applications (sockets/baseserver, base test) resulted in the
following error: undefined reference to `__imp__ZTV20wxObjectEventFunctor'
Fix this by implementing the destructor inside the base library.
2019-07-21 18:00:42 +02:00
Maarten Bent
2815870507 Resolve some extra semicolon warnings 2019-07-21 17:15:02 +02:00
Vadim Zeitlin
e2332f2703 Add semi-private wxHtmlCell::Dump()
This is useful to see the results of wxHTML layout algorithm.

Closes https://github.com/wxWidgets/wxWidgets/pull/1429
2019-07-20 17:01:30 +02:00
PeterO
8f386265dc Use correct expander size in wxDataViewCtrl under MSW
Add wxRendererNative::GetExpanderSize(), implement it using the
appropriate theme element and use it instead of hardcoding the expander
size to 3 character widths.

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

Closes #18449.
2019-07-20 17:00:32 +02:00
Vadim Zeitlin
3d970a9c08 Merge branch 'underline-improvements' of https://github.com/MaartenBent/wxWidgets
Add support for different underline types and colour to wxTextCtrl.

See https://github.com/wxWidgets/wxWidgets/pull/1406

Closes #17124.
2019-07-19 23:45:38 +02:00
Maarten Bent
cd7e21ad2b Apply wxTextCtrl underline review suggestions 2019-07-19 21:06:10 +02:00
Vadim Zeitlin
76e21c2ffa Merge branch 'gtk-persist-tlw'
Fix bugs affecting wxPersistentTLW under GTK.

See https://github.com/wxWidgets/wxWidgets/pull/1419
2019-07-18 17:44:35 +02:00
Vadim Zeitlin
b61a75d2d6 Merge branch 'msw-fontinfo-v0-fix'
Fix a user visible regression after fractional point size changes: don't
create 0-sized fonts from the wxNativeFontInfo version 0 strings.

See https://github.com/wxWidgets/wxWidgets/pull/1422
2019-07-16 23:20:37 +02:00
Igor Korot
1879e8e646 Make wxColourData parameter of wxColourDialog ctor const
This parameter is not modified by wxColourDialog (this might have been
the case, or at least the plan, some long time ago) and so has no reason
not to be "const".

Just add the qualifier to ctor and Create() in all ports.

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

Closes #12511.
2019-07-16 20:19:33 +02:00
oneeyeman1
8748a476c3 Add flag for displaying hidden files in the file dialog
Add wxFD_SHOW_HIDDEN and implement support for it for all the major
ports.

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

Closes #9342.
2019-07-16 19:59:48 +02:00
Vadim Zeitlin
7e90def99a Merge branch 'gtk-text-changed-coalesce'
Harmonize wxEVT_TEXT events in wxGTK with other ports.

Also use IME for wxComboBox in wxGTK too.

See https://github.com/wxWidgets/wxWidgets/pull/1400
2019-07-16 19:41:32 +02:00
lucian-rotariu
04f7f1fd32 Add support for freezing columns and/or rows of wxGrid
Add wxGrid::FreezeTo() method which allows to freeze the given number of
columns and/or rows at the beginning of the grid, i.e. keep them pinned
in place while the rest of the grid is scrolled.

The main wxGridWindow (m_gridWin) now corresponds to the non-frozen part
of the grid, with up to 3 new similar windows for the frozen
rows/columns and the frozen corner cells (which only exist if both rows
and columns are frozen) being additionally used.

Doing this involved adding "wxGridWindow*" parameter to many functions
that previously only worked with m_gridWin itself and addressing
additional complications, such as mouse events that can now cross
different windows.

See https://github.com/wxWidgets/wxWidgets/pull/952 for the original
version of the changes.
2019-07-16 18:01:36 +02:00
Vadim Zeitlin
f61b58bba3 Override wxGrid::ScrollWindow() to scroll row/column labels too
Instead of doing it in overridden wxGridWindow::ScrollWindow(), do it
from wxGrid::ScrollWindow() itself, this makes more sense and will make
it easier to generalize it to scroll more windows.

No real changes yet.
2019-07-16 18:01:36 +02:00
Vadim Zeitlin
a871229f8b Refactor wxGrid code to use SetNativeHeaderColXXX() functions
Add two simple helpers: SetNativeHeaderColCount() and
SetNativeHeaderColOrder() and call the latter from the former to ensure
that the columns order is always correct when switching to the native
control.
2019-07-16 18:01:36 +02:00
Vadim Zeitlin
3baeb6e834 Rename wxGrid::m_colWindow to m_colLabelWin
No real changes, just rename it for consistency with m_rowLabelWin.
2019-07-16 18:01:36 +02:00
lucian-rotariu
00224e3f30 Add wxGrid::RefreshBlock() helper
This simple function combines BlockToDeviceRect() and
wxWindow::Refresh() calls and allows to avoid the ugly casts in
wxGridSelection code as well as making the code slightly shorter and
more clear.

No real changes.
2019-07-16 18:01:36 +02:00