Commit Graph

191 Commits

Author SHA1 Message Date
Vadim Zeitlin
6bb45751e5 Remove redundant ShouldForwardFromEditToCombo() check
No real changes, just avoid calling ShouldForwardFromEditToCombo() in
MSWProcessEditMsg() because this function is only called when the
message should be forwarded.

Also make the comment about the return value more clear.
2018-02-17 14:17:13 +01:00
Tobias Taschner
ddceaab001 Remove MSW wxUxThemeEngine class
This undocumented "private" class was used for various windows UxTheme
functions which are available since WinXP. As wxWidgets 3.1 is XP+ it
does not make sense anymore to load the theme functions dynamically.
2018-01-22 00:51:11 +01:00
Vadim Zeitlin
5a949efc5c Fix sending wxEVT_TEXT_ENTER when using auto-completion in wxMSW
We need to explicitly generate this event from the char hook handler as
we don't get the normal WM_CHAR for it, it is apparently intercepted by
the window proc installed by the auto-completing code, so check if
wxTE_PROCESS_ENTER is used for the text entry and call a special new
MSWProcessSpecialKey() method to do the right thing if it is.

Similarly, handle Tab presses correctly if wxTE_PROCESS_TAB is used.

Closes #12613.
2017-12-25 19:29:25 +01:00
Vadim Zeitlin
17105cfd07 Simplify changing window styles in wxMSW code
Add wxMSWWinStyleUpdater and wxMSWWinExStyleUpdater helper classes which
allow writing code changing GWL_STYLE and GWL_EXSTYLE bits,
respectively, in a shorter and more clear way.

There should be no real changes in behaviour.
2017-12-10 17:47:16 +01:00
Maarten Bent
afc02a34ee More use of wxFALLTHROUGH in MSW code and samples 2017-11-25 17:52:08 +01:00
Cătălin Răceanu
f223e2a3b5 Use lpszClass parameter as "EDIT"
`widgets` sample works fine with this change.
2016-02-22 22:42:16 +02:00
Catalin
180bee9ba8 Use slightly safer FindWindowEx() call. 2016-02-21 20:12:26 +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
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
Artur Wieczorek
35379a9633 Set layout direction of wxComboBox edit control only if it exists.
Doesn't update layout direction of edit control if wxComboBox is in read-only
mode because editor control doesn't exist in this case.
2015-03-13 19:31:32 +01:00
Vadim Zeitlin
e5755015e7 Fix setting layout direction for wxComboBox in wxMSW.
The EDIT control used by the native combobox is different from normal EDIT
controls and has to be handled specially.

We also need to explicitly forward WS_EX_LAYOUTRTL to the dropdown window as
it doesn't inherit it from the combobox itself automatically.

See #11583.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-21 01:41:17 +00:00
Vadim Zeitlin
0d4ad161d5 Remove support for Win9x from wxMSW.
Most importantly, this allows us to remove all MSLU-related stuff.

Some functions which were previously loaded dynamically can now be just used
directly, too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-16 02:33:40 +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
9c4f2cd1ca Don't eat TAB presses for wxComboBox with wxTE_PROCESS_ENTER in wxMSW.
Still allow to use TAB for navigation even when a wxComboBox has
wxTE_PROCESS_ENTER style.

Use the same hack for wxTextCtrl, i.e. implement the navigation ourselves as
we can't let IsDialogMessage() handle it but still get VK_ENTER key presses.

Closes #12808.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-16 23:37:54 +00:00
Vadim Zeitlin
3e8b0d8144 Fix blank wxComboBox appearance broken by the changes of r75134.
We didn't repaint the owner drawn combobox items any more because they were
not found by MSWFindItem().

Fix this by restricting the check to the real windows with the same ID as the
combobox, not the dropdown items which are not windows at all.

See #15674.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-15 15:26:21 +00:00
Vadim Zeitlin
9b31387508 Merge the changes from 3.0 branch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-12 18:06:37 +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
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
65676a2882 Make wxChoice and wxComboBox behaviour same as in native controls in wxMSW.
Keep the item selected from the drop down using keyboard when switching away
from the control by pressing TAB: although this generates CBN_SELENDCANCEL
notification, the selection is actually kept by the native controls in this
case, so don't reset it ourselves -- even though it makes sense, it makes wx
applications behave differently from the native ones.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-02 23:49:25 +00:00
Vadim Zeitlin
7bc740719c Add wxControlWithItems::SendSelectionChangedEvent() helper.
Reuse the same event generation code for wxChoice in wxMSW, wxGTK and wxOSX
and also wxComboBox in wxMSW and wxGTK instead of duplicating it (incompletely
and so partially incorrectly in wxOSX case).

This is just a refactoring so no changes in behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-02 23:48:59 +00:00
Vadim Zeitlin
1b6010d86f Compilation fixes for VC6 after MSWGetComboBoxInfo() introduction.
Don't use COMBOBOXINFO outside of WINVER checks, we can only use
tagCOMBOBOXINFO that we forward declared ourselves.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-18 00:14:37 +00:00
Vadim Zeitlin
aa24f946c6 Implement DoGetSizeFromTextSize() for wxMSW wx{Choice,Combobox,TextCtrl}.
Refactor and improve the existing DoGetBestSize() implementations to use
DoGetBestSize().

Closes #14816.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:47:59 +00:00
Vadim Zeitlin
df74e2d251 No changes, just refactor wxMSW wxComboBox code calling GetComboBoxInfo().
Move the code dynamically loading this function to the base wxChoice class to
make it possible to use it from there in the upcoming commit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:47:36 +00:00
Vadim Zeitlin
5ddb3b8c53 Fix setting colours for the edit control part of wxComboBox.
Recognize this control as part of wxComboBox and so handle WM_CTLCOLOR for it.

To do this, override ContainsHWND() in wxComboBox and use it, on the parent
window, in wxControl::DoMSWControlColor(), if we fail to find the window
directly.

Closes #811.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:11:56 +00:00
Vadim Zeitlin
75aaa4c5ac Forward WM_{CUT,COPY,PASTE} from edit control to wxComboBox in wxMSW too.
This allows us to receive wxClipboardTextEvents from wxComboBox as well.

Update the documentation to mention this.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-01 21:10:08 +00:00
Vadim Zeitlin
38b1843b5c Fix generation of wxEVT_CHAR in wxMSW wxComboBox.
wxEVT_CHAR shouldn't be generated at all if wxEVT_KEY_DOWN was handled but it
still was for wxComboBox because the code in its MSW implementation directly
called HandleKeyDown() and HandleChar() methods, bypassing the logic dealing
with m_lastKeyDownProcessed at wxWindow level.

Fix this by calling MSWHandleMessage() instead to ensure that WM_CHAR after a
handled WM_KEYDOWN are ignored as they ought to.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-29 23:55:54 +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
a24fb9f847 Refactor: move wxComboBox::MSWDoPopupOrDismiss() down to wxChoice.
No real changes, just make this method available in wxChoice for the next
commit needs.

See #3113.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:15 +00:00
Vadim Zeitlin
f7dd07f64d No real changes, just use clearer names for wxMSW wxToolTip methods.
Rename wxToolTip::DoAddOtherWindow() to DoAddHWND() as it should be used for
adding any window associated with the tooltip, either the main or an auxiliary
one. And rename wxToolTip::Add() to AddOtherWindow() because it shouldn't be
used for the main window.

See #14184.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 13:55:51 +00:00
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
ca96978a98 Explicitly include "wx/dynlib.h" from src/msw/combobox.cpp.
This header was only included implicitly via wx/msw/uxtheme.h and thus the
code failed to compile with wxUSE_UXTHEME==0 but wxUSE_DYNLIB_CLASS==1.

See #12664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-18 12:41:07 +00:00
Vadim Zeitlin
14ca3a3b0e Add more checks for wxUSE_DYNLIB_CLASS to wxMSW.
Compilation fixes for wxApp and wxComboBox for wxUSE_DYNLIB_CLASS==0.

See #12664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:38 +00:00
Vadim Zeitlin
b6885972ee Fixes to key codes in keyboard events generated by wxMSW.
Only set Unicode key code if the event corresponds to a character key and set
it to (newly added) WXK_NONE for the other ones to avoid nonsensical values in
it for e.g. "Home" key presses.

Also set non-Unicode key to WXK_NONE for the characters that can't be
represented in the current locale. This is consistent with wxGTK and avoids
conflicts between special key values and Unicode keys.

Clearly document the above behaviour.

Notice that implementing the correct behaviour in wxMSW involved untangling
previously interwoven WM_KEY{DOWN,UP} and WM_CHAR messages handlers. Clearly
separate them now as they get different input (key codes for the former,
characters for the latter) and especially don't try to convert from both kinds
of input using a single wxCharCodeMSWToWX() function. As this function doesn't
need to distinguish between keys and characters any more it can simply return
the converted value in all cases instead of returning 0 sometimes to indicate
a character value instead of a key. Simplify the code using this function
accordingly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-11 10:18:47 +00:00
Vadim Zeitlin
d1d1f8175d Add wxComboBox::Popup() and Dismiss() to manually show or hide its popup.
Add implementations for wxMSW and wxGTK.

Closes #11506.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 01:00:45 +00:00
Julian Smart
1690c2ce36 Attempt at compile fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-28 06:07:43 +00:00
Julian Smart
e558f9533e Applied better/Win98-proof method of getting edit window
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 13:33:41 +00:00
Julian Smart
fe56156fb5 Alternate fix for #9954 (simple combobox assert) except on WinCE which probably shouldn't be using a simple combobox anyway
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 08:36:25 +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
8933fbc62e add combobox drop down/close up events (closes #10587)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-18 10:42:58 +00:00
Vadim Zeitlin
63f7d5022e added wxTextEntry::SetHint() (a.k.a. cue banner or placeholder string)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-02 12:25:01 +00:00
Vadim Zeitlin
428f8b0610 don't change the combobox text when it's being resized (see #10126)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-25 19:08:33 +00:00
Vadim Zeitlin
ae3b14872b don't save the initial selection if it's invalid in CBN_DROPDOWN (refixes #8474 without breaking #9995)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-27 18:47:07 +00:00
Vadim Zeitlin
b7bfef3806 implement EnableTextChangedEvents() to make ChangeValue() work as expected, i.e. not generate any events
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-19 10:08:02 +00:00
Vadim Zeitlin
5a25f8581a refactored code reused in several different places in wxTextEntry::RemoveSelection() (patch 1910166)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:58:54 +00:00
Vadim Zeitlin
e976429dfa no real changes, just use more readable helper wxTextEntry methods (patch 1910165 )
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:52:32 +00:00
Vadim Zeitlin
74052fe83b added more includes of wx/msw/dc.h needed since r52054 for wxMSW compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-25 02:13:36 +00:00
Václav Slavík
b65f16dabd fixed wxTextCtrl to not process clipboard events twice if there's a custom wxEVT_COMMAND_TEXT_* handler; move WM_PASTE/CUT/COPY processing to wxWindow where it belongs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-02 22:29:19 +00:00
Vadim Zeitlin
9740be9800 use FindWindowEx() instead of ChildWindowFromPoint() in wxComboBox::GetEditHWNDIfAvailable(), this should find the child edit control whatever is the combobox size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-20 22:34:20 +00:00
Julian Smart
c0e15042c3 Don't try to call CanUndo/CanRedo for read-only combobox since we'll get an assert.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-14 15:01:33 +00:00