Commit Graph

259 Commits

Author SHA1 Message Date
Catalin
7b26050fb6 Remove checks for NIN_XXX.
<https://msdn.microsoft.com/en-us/library/windows/desktop/ms632643(v=vs.85).aspx>
2017-03-05 15:36:24 +02:00
Václav Slavík
e99abe513a Fix wxFULL_REPAINT_ON_RESIZE handling in wxMSW
Fix regression introduced in d4e595adb0
where the wxFULL_REPAINT_ON_RESIZE flag was accidentally ignored in most cases.
2017-01-06 14:33:24 +01:00
Vadim Zeitlin
097f8a7f14 Refactor code finding the name of the windows class to use in wxMSW
Determine which class name to use in MSWCreate() caller instead of doing it
partly there and partly in MSWCreate() itself, which used to add the "NR"
suffix if necessary -- now it doesn't do this any more and just really created
the window using the given class.

No real changes, just prepare for future enhancements.
2016-12-18 22:39:02 +01:00
Paul Cornett
9b19a6e529 use wxOVERRIDE in wxMSW sources 2016-09-23 07:59:11 -07:00
Václav Slavík
a0805d32eb MSW: Fix dialog default positions under RTL locales
Toplevel windows use their parent's coordinate system as the reference
frame, not desktop's, so need to be adjusted accordingly if its
mirrored. Without these changes, default-positioned wxDialogs would end
to the right side of the parent window's right border (instead of being
slightly inside the window) and changing their size would move them as
well.
2016-04-23 14:49:01 +02:00
Tobias Taschner
27ffe525b5 Remove dynamic loading of SetLayeredWindowAttributes and FlashWindowEx.
FlashWindowEx is available since WinXP.
SetLayeredWindowAttributes is available since Win2k.
2015-09-27 19:10:49 +02:00
Vadim Zeitlin
44472777e2 Fix dialogs title bar broken by Windows CE removal changes
Restore the code setting WS_CAPTION that was mistakenly removed in
8282c1be0f

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

Closes #17161.
2015-09-25 00:40:16 +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
John Roberts
fe9a5f47f4 Add wxTopLevelWindow::Enable{Maximize,Minimize}Button()
Allow to disable maximize and minimize buttons dynamically just as we already
allow to disable the "Close" button using EnableCloseButton().

Currently implemented for MSW and OSX only.

Closes #17133.
2015-09-06 14:17:46 +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
Tobias Taschner
388e82e70c Remove MSW code targeted at versions prior to WinXP.
In 3.1 WinXP is required so remove checks and code for prior versions.
2015-08-06 09:44:20 +02:00
Vadim Zeitlin
73119a37ae Remove obsolete _EXPORT macro not used under Win32.
This was a leftover from bad old Win16 days.
2015-07-05 16:55:26 +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
Vadim Zeitlin
a6d74d8176 No changes, just fix a slightly misleading comment in wxMSW focus code.
DefWindowProc() never preserves the focused window actually, whether we use
WM_NEXTDLGCTL (which is only handled by DefDlgProc() anyhow) or not.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-09 03:30:10 +00:00
Vadim Zeitlin
8509ce2358 Fix saving focus for MDI child frames in wxMSW.
Use wxWindow::IsDescendant() instead of wxGetTopLevelParent() to determine
whether the focused window is inside the TLW, as the former works correctly
for any window, including wxMDIChildFrames, while the latter would return
wxMDIParentFrame for them (as MDI children are not considered to be TLWs) and
so saving the focus would always fail and the focus was always restored to the
first child of wxMDIChildFrame after switching from it to another child frame
and back, as could be seen by applying the simple patch:

---------------------------------- >8 --------------------------------------
diff --git a/samples/docview/view.cpp b/samples/docview/view.cpp
index 9f20032..8386522 100644
--- a/samples/docview/view.cpp
+++ b/samples/docview/view.cpp
@@ -160,8 +160,9 @@ bool TextEditView::OnCreate(wxDocument *doc, long flags)
     wxFrame* frame = wxGetApp().CreateChildFrame(this, false);
     wxASSERT(frame == GetFrame());
     m_text = new wxTextCtrl(frame, wxID_ANY, "",
-                            wxDefaultPosition, wxDefaultSize,
+                            wxPoint(5, 5), wxDefaultSize,
                             wxTE_MULTILINE);
+    new wxButton(frame, wxID_ANY, "Button", wxPoint(5, 100));
     frame->Show();

     return true;
---------------------------------- >8 --------------------------------------

Notice that the bug usually stayed hidden because it didn't happen if
wxMDIChildFrame contained a wxPanel (which also stores the last focus) inside
it or if the focus switched away from the entire application instead of just
going to another child and back, as in this case the last focus was stored in
wxMDIParentFrame, for which the old code did work.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78340 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-03 01:07:50 +00:00
Vadim Zeitlin
f1fd45892f Fall back to default process layout direction in wxMSW.
Add helper wxApp::MSWGetDefaultLayout() static method and use it instead of
wxTheApp->GetLayoutDirection() in wxMSW code.

This serves two purposes: first, wxMessageDialog doesn't crash when it's shown
before wxTheApp is created (or after it's destroyed) any more. And second, we
use the correct layout direction if the main application has enabled it by
calling SetProcessDefaultLayout() or using two U+200E characters in the
beginning of its "FileDescription" resource field by default now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-05 22:18:25 +00:00
Bryan Petty
6795b5c1af Fix rebase error.
Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 14:54:20 +00:00
Bryan Petty
7a1de0a65f Move taskbar button from wxTopLevelWindowMSW to wxFrame.
Since there are two sub-classes of wxTopLevelWindowMSW: one is wxFrame, the
other is wxDialog. However, wxDialog have no button shown in taskbar on
windows, so the taskbar button feature should be only avaiable in wxFrame.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 14:50:20 +00:00
Bryan Petty
2fdf84c7e7 APIs for adding a thumbnail toolbar with a specified set of buttons.
- AddThumbBarButton(wxThumbBarButton *button), ShowThumbnailToolbar().
- Add THBN_CLICKED message handler to top level window and generate a
  wxCommandEvent event.
- Sample.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 14:50:08 +00:00
Bryan Petty
076747aa81 Introduce skeleton of taskbar button feature.
- Add classes: wxTaskBarButton and wxTaskBarButtonImpl.
- New interface in wxTopLevelWindowMSW to get its wxTaskBarButton:
    MSWGetTaskBarButton.
- A simple sample and build files under msvc.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 14:49:33 +00:00
Bryan Petty
93d5b8bb0d Register message "TaskbarButtonCreated" when wxTopLevelWindowMSW is created.
This message is used to make sure the taskbar button is in place, so
wxTaskbarButton object can initialize correctly.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 14:49:20 +00:00
Chaobin, Zhang
23ce61c395 Reverting failed mering of SOC2014_TASKBAR.
Command: git svn dcommit is aborted, and the two branches is diverged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 11:57:58 +00:00
Chaobin, Zhang
156599ce56 Move taskbar button from wxTopLevelWindowMSW to wxFrame.
Since there are two sub-classes of wxTopLevelWindowMSW: one is wxFrame, the
other is wxDialog. However, wxDialog have no button shown in taskbar on
windows, so the taskbar button feature should be only avaiable in wxFrame.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 08:51:01 +00:00
Chaobin, Zhang
844cdba9d9 APIs for adding a thumbnail toolbar with a specified set of buttons.
- AddThumbBarButton(wxThumbBarButton *button), ShowThumbnailToolbar().
- Add THBN_CLICKED message handler to top level window and generate a
  wxCommandEvent event.
- Sample.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 08:47:54 +00:00
Chaobin, Zhang
1fa04989f3 Introduce skeleton of taskbar button feature.
- Add classes: wxTaskBarButton and wxTaskBarButtonImpl.
- New interface in wxTopLevelWindowMSW to get its wxTaskBarButton:
    MSWGetTaskBarButton.
- A simple sample and build files under msvc.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 08:37:43 +00:00
Chaobin, Zhang
ed47c030cd Register message "TaskbarButtonCreated" when wxTopLevelWindowMSW is created.
This message is used to make sure the taskbar button is in place, so
wxTaskbarButton object can initialize correctly.

Author: Chaobin Zhang

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-10 08:34:36 +00:00
Václav Slavík
3821abef51 Handle WM_*MENU* events in wxWindow.
Contrary to MSDN implications, at least some of these messages are not
actually sent to the TLW for popup menus, but to the owning window or
even its parent window (!).

Move the handling of these events from wxTLW to wxWindow.  Move menu
depth tracking to wxFrame, because it only makes sense for frame's
menus and move DoGiveHelp() from wxTLW to wxFrame.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-18 12:51:39 +00:00
Vadim Zeitlin
be35fb7a15 Compilation fix for wxMSW with wxUSE_TOOLTIPS==0.
This is another fix after the changes of r76657, see #16265.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-05 11:29:34 +00:00
Vadim Zeitlin
b60e0e085e Including missing header for wxUniv/MSW build.
Compilation fix after the changes of r76657, see #16265.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-04 22:47:23 +00:00
Vadim Zeitlin
35434eea52 Hide tooltip when its associated window is hidden in wxMSW.
Don't leave the tooltip shown on screen if the window it was shown for was
hidden or iconized (without moving the mouse, as that would have dismissed the
tooltip as well).

Closes #16265.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-02 01:15:39 +00:00
Vadim Zeitlin
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +00:00
Vadim Zeitlin
211b166182 Another compilation fix for wxUniv/MSW build.
This should have been part of r76077, see #16039.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-05 16:29:40 +00:00
Vadim Zeitlin
a46fbf1bcd Compilation fix for wxUniv/MSW in wxTLW code dealing with menus.
The code used by WM_INITMENUPOPUP and WM_EXITMENULOOP handlers shouldn't be
used in wxUniv build as it's not used there anyhow and doesn't even compile.

Closes #16039.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-04 14:07:43 +00:00
Vadim Zeitlin
e3735e7a9f Show full screen windows with WS_POPUP style in wxMSW.
This doesn't make any difference for most windows but fixes a problem with
wxGLCanvas windows using stereo support of Nvidia cards and generally it does
make sense to use WS_POPUP with full screen windows as they are definitely not
overlapped, so just use this style unconditionally.

Closes #15434.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-15 00:16:39 +00: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
Vadim Zeitlin
1e5b533ec0 Fix restoring the status bar help message after closing MSW menu from keyboard.
Add a hack to ignore WM_MENUSELECT messages we get for the top level menu
items: we must not clear the status bar help message when we get those because
it had just been restored to the original message that was there before the
menu was opened from the base class wxEVT_MENU_CLOSE handler, but this message
comes after it when keyboard is used to close the menu.

Closes #15315.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-10 12:28:06 +00:00
Vadim Zeitlin
a98d057434 Ignore WM_MENUSELECT messages indicating that the menu was closed.
Don't update the help string in this case, this is not necessary and can clear
the help string set elsewhere.

See #15315.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-10 12:24:54 +00:00
Vadim Zeitlin
bceb01f728 Fix WM_UNINITMENUPOPUP missing definition for VC6.
The previous workaround of defining it explicitly if it's not defined was left
in src/msw/frame.cpp while the code using WM_UNINITMENUPOPUP was moved to
src/msw/toplevel.cpp in r73562. Move the fallback definition there too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-19 02:58:33 +00:00
Vadim Zeitlin
95316a3f24 Move menu messages handling from wxFrame to wxTLW in wxMSW.
This allows to generate the menu open/close/highlight events correctly for the
popup menus used in the dialogs.

Extend the menu sample with a test using such menus.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-24 13:48:13 +00:00
Vadim Zeitlin
ef40bc3dae Fix uniconizing hidden top level windows in wxMSW.
wxTLW wasn't properly restored if Iconize(false) was called while the window
was hidden.

Fix this by adding yet another special case to wxTopLevelWindowMSW::Show().
This makes it even less comprehensible than before but there doesn't seem to
be any obvious way to simplify this code without totally changing it.

Closes #14539.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-05 22:44:26 +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
Julian Smart
7f6cf37004 Removed redundant DoEnable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-12 11:42:49 +00:00
Julian Smart
6c6b938377 A fix for flicker when the top-level window is disabled or enabled (e.g. by modal dialogs).
Achieved by using IsThisEnabled to determine the visual disabled state and thus requiring no refresh on top-level window enabling/disabling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-11 05:31:06 +00:00
Vadim Zeitlin
0c6dff0370 Preserve focus when window is minimized and restored in wxMSW.
Add specific code to save and restore the focus when the window is minimized
and restored in wxMSW as the existing code in WM_ACTIVATE handler wasn't
enough because this event was generated too late when minimizing the window
(when it was already minimized and so the focus had been already lost) and too
early when restoring it (so the window was still minimized and restoring focus
failed).

This is still not perfect as we do in our code something Windows would be
expected to do automatically but for whatever reason, it doesn't do it for
wxWidgets programs, and this manual workaround at least prevents the annoying
total focus loss.

Closes #1599.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 14:18:28 +00:00
Vadim Zeitlin
7cee4f7621 No changes, just implement Raise() in wxTopLevelWindow in wxMSW.
Get rid of two identical implementations in wxFrame and wxDialog and only
override this function once in wxTopLevelWindow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 14:18:22 +00:00
Vadim Zeitlin
d928f01967 Fix setting frame icon when using non-standard icon sizes in wxMSW.
Set the closest (and larger, if possible) icon if the icon of exactly the
system icon size is not available. This fixes setting the icons when using
custom DPI settings under MSW as the standard icon size may be different from
the standard 32*32 in this case.

This also improves wxIconBundle::GetIcon() to make its behaviour when the icon
with exactly the given size is not found more flexible as a side effect.

Closes #13891.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-24 22:17:47 +00:00
Vadim Zeitlin
7cb83a8b78 Don't activate MSW dialogs when setting their initial size.
As the dialog is not shown yet at this moment, activating it didn't work
correctly and the dialog didn't get the focus when it was shown later.
Fix this by preventing ::SetWindowPos() from activating it, which it does by
default.

Closes #13765.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70036 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-17 23:04:50 +00:00
Václav Slavík
8df14bedf5 Fix NULL window argument to wxEVT_KILL_FOCUS when creating a TLW.
wxTopLevelWindowMSW::CreateDialog first moved and resized the newly
created window and only then called SubclassWin(). Because native focus
change occurred when moving the window, HWND->wxWindow association
wasn't yet filled in and wxFindWinFromHandle() would return NULL.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-19 16:19:58 +00:00
Vadim Zeitlin
5bd0ee9966 Move wxTopLevelWindow::SetShape() down to wxNonOwnedWindow.
Also add wxNonOwnedWindow for wxMSW (which previously simply typedef'd it to
wxWindow) and document this class now that it provides some user-visible
functionality.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-10 10:53:23 +00:00
Dimitri Schoolwerth
fe62518e7c Fixed MSW/Univ compilation of toplevel.cpp.
MSW-only functions were compiled in, disabled their usage by adding #ifndef __WXUNIVERSAL__ blocks.

Closes #13399 (again, after r68723 already should have closed it but its commit message contained a typo).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-25 21:52:55 +00:00