Commit Graph

79 Commits

Author SHA1 Message Date
Vadim Zeitlin
24c7baa07e Add wxRESERVED_PARAM symbolic constant and use it instead of 0
This is more readable than just using "0" or "NULL" and shorter than
writing a comment every time.

No real changes.
2021-01-09 21:31:41 +01:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Vadim Zeitlin
434faa39e6 Remove unused wxDisplayImpl::GetSizeMM()
This is not needed any longer after the changes of the last commit.

Note that the (still existent) public wxGetDisplaySizeMM() didn't use
this function, but used PPI instead.
2020-08-15 00:28:32 +02:00
Vadim Zeitlin
bcb101b9e9 Simplify PPI and scale factor handling in wxDisplay
Don't try computing the PPI ourselves from the physical size and the
number of pixels, this doesn't work and nobody else does it like this.

Just assume that we're using standard PPI by default and use
toolkit-specific functions for the platforms with support for high DPI.
2020-08-15 00:28:32 +02:00
Maarten Bent
44cd0409cd Return unique modes from wxDisplay::GetModes 2019-11-21 23:18:12 +01:00
Vadim Zeitlin
cdc6899924 Store MONITORINFOEX inside wxDisplayMSW
There is no reason to call ::GetMonitorInfo() all the time, e.g. just to
determine if the monitor is primary, as we can just store it entirely.

We already invalidate the information stored for all the displays
whenever anything changes, so the cached information doesn't risk
getting out of sync.
2019-11-08 00:34:40 +01:00
Vadim Zeitlin
fda3bcbfc5 Remove unused static variable from wxMSW wxDisplay code
This should have been done in f936a54000
which removed dynamic loading of display-related functions.

No real changes.
2019-07-12 16:35:01 +02:00
Vadim Zeitlin
3959810d42 Avoid unnecessary cached display information updates
Only invalidate display cache when something related to the displays has
changed and not whenever any system option has.

This should avoid completely unnecessary refreshes when a UAC prompt is
shown, for example: even if doing this works now, after the previous
commit, we still don't have to do it at all.
2019-03-31 13:22:30 +02:00
dasimx
f3c5923e1a Fix refreshing display information in wxMSW in some special cases
Passing screen HDC to EnumDisplayMonitors() doesn't work if we do it
while a UAC prompt is shown or during log-off process, so change the
code enumerating the displays to use monitor-appropriate HDC instead.

This fixes the problem with losing display information entirely if
WM_SETTINGSCHANGE was generated when showing UAC prompt, as it happens
when "automatic background color" option is set under Windows 10.
2019-03-31 13:18:41 +02:00
dasimx
e9ca12aaac Remove the now unnecessary wxDisplayFactoryMSW::RefreshMonitors()
wxDisplay::InvalidateCache() does the same thing this function does, so
just remove it to avoid confusion.

This also allows to get rid of ms_factory duplicating the factory
pointer stored at wxDisplay level.

See https://github.com/wxWidgets/wxWidgets/pull/1281
2019-03-30 14:15:14 +01:00
dasimx
a15004fc5f Fix handling display disconnection under wxMSW
Information about display cached in wxDisplayFactory::m_impls and in
wxDisplayFactoryMSW::m_displays could get out of sync after removing a
display from the system, resulting in failures when calling various
wxDisplay functions later.

To fix this, reuse InvalidateCache() to invalidate the cache in
wxDisplayFactoryMSW too, making it virtual in order to allow overriding
it there. Also call InvalidateCache() from wxDisplayFactoryMSW itself
instead of doing it from wxWindow, as this works even when the
application isn't showing any windows (and also keeps all
display-related code together).

Closes https://github.com/wxWidgets/wxWidgets/pull/1246
2019-03-29 23:19:59 +01:00
Vadim Zeitlin
ded2894b78 Add wxDisplay::GetPPI() to use instead of wxGetDisplayPPI()
While this is not done for all the ports yet, the new API allows
returning different PPI values for different monitors, unlike the old
(and still existing, but implemented in terms of the new one) global
function.
2018-10-08 13:04:38 +02:00
Vadim Zeitlin
24b5e256df Add wxDisplay::GetDepth() and use it for wxDisplayDepth()
Allow getting the depth of any display, not just the primary one, even
though this is not implemented for Unix ports currently.

Mostly do this for consistency with the other display-related functions.
2018-10-07 00:30:12 +02:00
Vadim Zeitlin
c2162792cf Implement wxDisplaySize() and wxClientDisplayRect() via wxDisplay
Instead of forwarding to these functions from wxDisplay implementation
in wxUSE_DISPLAY==0 case, make the functions themselves wrappers around
wxDisplay, which may, or not, depending on the platform, have a simpler
implementation in wxUSE_DISPLAY==0 case, but is always available in any
case.

As part of this change, only use src/osx/core/display.cpp in macOS
builds, not iOS ones and update the Xcode project accordingly too.

This cuts down on code duplication, especially in wxGTK, and facilitates
further additions to wxDisplay API.
2018-09-30 23:07:45 +02:00
Vadim Zeitlin
bac28b95cd Move wx/display_impl.h to wx/private/display.h
This shows more clearly that this header is private to wxWidgets and
can't be included by user code.

No real changes.
2018-09-30 00:38:26 +02:00
Jeff Bland
ffb44a2f38 Fix use of RECT in wxClientDisplayRect without including windows headers 2018-05-18 18:49:05 -06:00
Cătălin Răceanu
e950e4a129 Remove MONITOR-related declarations not needed any more
Don't define MONITOR-related structs and messages ourselves in wxMSW code,
this shouldn't be needed any more as they're present in all remotely recent
versions of the SDK.

No real changes, just minor clean up.
2017-03-05 17:01:22 +01:00
Vadim Zeitlin
d15bbcacd2 Merge branch 'rmv_symbols_3' of https://github.com/catalinr/wxWidgets
Remove obsolete mentions of Windows 9x, Windows CE and OS/2.
2017-02-20 17:46:45 +01:00
Paul Cornett
9b19a6e529 use wxOVERRIDE in wxMSW sources 2016-09-23 07:59:11 -07:00
Catalin
8aafec1ace Removed obsolete symbols from comments. 2016-02-21 20:12:28 +02:00
Catalin
a92baffcec Removed obsolete symbols from comments. 2016-02-21 20:12:14 +02:00
Tobias Taschner
f936a54000 Remove dynamic loading of Display APIs.
ChangeDisplaySettingsEx, EnumDisplayMonitors, MonitorFromPoint, MonitorFromWindow and GetMonitorInfo are available since Win2k.
2015-09-27 19:10:49 +02:00
Tobias Taschner
8282c1be0f Remove Windows CE support
Windows CE doesn't seem to be supported by Microsoft any longer. Last CE
release was in early 2013 and the PocketPC and Smartphone targets supported by
wxWidgets are long gone.

The build files where already removed in an earlier cleanup this commit
removes all files, every #ifdef and all documentation regarding the Windows CE
support.

Closes https://github.com/wxWidgets/wxWidgets/pull/81
2015-09-23 00:52:30 +02:00
Tobias Taschner
f1abb351af Remove MicroWindows support.
MicroWindows (aka Nano-X) support hasn’t been updated since 2010 and last work for it in wxWidgets happened more than 10 years ago.
2015-08-27 11:00:16 +02:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Václav Slavík
2d748a33ba wxDisplay only needs dynlib.h, not dynload.h.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-14 19:14:59 +00:00
Vadim Zeitlin
5146904d0f Refactor wxMSW helper functions to allow reuse in wxGTK.
Extract wxMSW-specific part of src/msw/utilsgui.cpp into a new
src/msw/utilswin.cpp file to allow reuse the rest of the former file in wxGTK.

Closes #14424.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-14 20:11:04 +00:00
Vadim Zeitlin
fa88bebec1 Implement wxDisplay::GetFromWindow() for wxGTK/Windows.
As wxWindow doesn't have an associated HWND when using wxGTK, use
MonitorFromPoint() instead of MonitorFromWindow() for this port.

Closes #14408.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-01 11:35:52 +00:00
Vadim Zeitlin
017dc06b50 Use wxString::t_str() in calls to Windows API functions in wxMSW.
Use t_str() instead of wx_str() to make the code work correctly in UTF-8 build
in which wx_str() returns a pointer to UTF-8 buffer while we need a wchar_t
pointer for Windows.

Closes #14371.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-03 19:16:59 +00:00
Vadim Zeitlin
ad6f09f543 Refresh wxDisplay when a monitor is added to or removed from the system.
If a monitor was attached or detached while a wx program was running, the
monitor handles stored in wxDisplayFactoryMSW became invalid and all display
operations (e.g. getting display size) failed from this moment onwards
requiring a program restart to work again.

Fix this by updating the monitor handles when we get WM_SETTINGCHANGE as it is
sent when a monitor is added or removed (while it's also sent in quite a few
other cases re-enumerating the monitors shouldn't take very long so just do it
always).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:35 +00:00
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Vadim Zeitlin
473ca5f34a Compilation fixes for non-MSVC 9 compilers after r65555.
Somehow MSVC 9 compiled invalid wxT(__FUNCTION__) expressions but both MinGW
and MSVC 6 (correctly) failed. Don't use this construct at all but instead
call wxLogLastError() with the real function name.

Also refactor the code slightly to avoid having to repeat this fix thrice.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-16 11:05:46 +00:00
Vadim Zeitlin
d5947fad64 Remove display information caching from MSW wxDisplay implementation.
Don't cache display rectangle and client rectangle as they can both change
during the program lifetime (especially the latter which changes whenever
taskbar is moved or shown/hidden) and retrieving them every time they're
needed doesn't seem to be a problem performance-wise anyhow.

We still cache the list of all the monitors, ideally we'd refresh it when we
receive a notification about a display being [dis]connected.

Closes #4582.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-15 23:04:02 +00:00
Vadim Zeitlin
16e4586527 Remove unused wxDisplay implementation using DirectDraw from wxMSW.
Remove commented out version of DirectDraw-based wxDisplayFactory
implementation. It doesn't seem to have any advantages compared to the
currently used version and nobody uses it anyhow.

Closes #12387.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-24 11:36:43 +00:00
Václav Slavík
142ae7b388 Don't include wx/msw/private.h from dynlib.h.
Because it's private header and introduces dependency on window.h.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-25 12:07:37 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Robert Roebling
2edac25b2e Compilo after wxVideoMode change, MSW part
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-07 08:23:58 +00:00
Vadim Zeitlin
d238d403f1 implement support for display enumeration under WinCE (patch 1890936)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-25 02:45:27 +00:00
Vadim Zeitlin
e2fc2bd51c add wxDL_QUIET flag; use RawGetSymbol() instead of GetSymbol() in wxDL_INIT_FUNC to avoid error messages for missing functions (this is also consistent with wxDL_INIT_FUNC_AW)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-06 01:30:58 +00:00
Vadim Zeitlin
d0edb9da60 added more convenient wxDL_INIT_FUNC[_AW] macros and use them instead of verbose wxDynamicLibrary::GetSymbol() calls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-21 18:43:51 +00:00
Václav Slavík
e0a050e347 more changes to make wx compile without implicit wxString->char* conversion (for STL build)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-20 07:44:45 +00:00
Václav Slavík
c9f7896861 first phase of transition to unified Unicode build:
1. changed c_str() to return wxCStrData (implicitly convertible to wxChar*)
2. added template type-safe wrappers for vararg functions
3. added wxUniChar class representing single Unicode character
4. changed wxString::operator[] and wxString::iterator to return wxUniChar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-17 10:26:10 +00:00
Vadim Zeitlin
1e93d59553 changed GetFromWindow() to take const pointer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-11 00:13:22 +00:00
Vadim Zeitlin
52778e0049 include wrapwin.h to get HMONITOR and friends declarations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-31 08:45:16 +00:00
Paul Cornett
7212d15556 don't include missing.h before windows headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-10 17:37:02 +00:00
Paul Cornett
4e675101a7 use unsigned for display count
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-02 05:38:05 +00:00
Włodzimierz Skiba
57bd4c6031 Include wx/msw/wrap*.h according to pch support (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-07 19:01:45 +00:00
Michael Wetherell
24aab8e81a Hacks for wine.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-04 16:36:47 +00:00