Fix wxSearchCtrl::HasFocus() in the generic version.

Override GetMainWindowOfCompositeControl() in the windows composing the
generic wxSearchCtrl to ensure that HasFocus() correctly returns true for the
entire control when any of them has focus.

Add a trivial unit test to check that this really works and facilitate adding
more tests for this class later.

Closes #14970.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-01-20 02:09:44 +00:00
parent f1a062a1fa
commit 09ca8913fa
12 changed files with 262 additions and 83 deletions

View File

@@ -49,7 +49,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmsw29ud_webview.lib wxmsw29ud_richtext.lib wxmsw29ud_media.lib wxmsw29ud_xrc.lib wxbase29ud_xml.lib wxmsw29ud_adv.lib wxmsw29ud_html.lib wxmsw29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmsw29ud_webview.lib wxmsw29ud_richtext.lib wxmsw29ud_media.lib wxmsw29ud_xrc.lib wxbase29ud_xml.lib wxmsw29ud_adv.lib wxmsw29ud_html.lib wxmsw29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswud\test_gui.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
@@ -114,7 +114,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmsw29u_webview.lib wxmsw29u_richtext.lib wxmsw29u_media.lib wxmsw29u_xrc.lib wxbase29u_xml.lib wxmsw29u_adv.lib wxmsw29u_html.lib wxmsw29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmsw29u_webview.lib wxmsw29u_richtext.lib wxmsw29u_media.lib wxmsw29u_xrc.lib wxbase29u_xml.lib wxmsw29u_adv.lib wxmsw29u_html.lib wxmsw29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswu\test_gui.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
@@ -184,7 +184,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmswuniv29ud_webview.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_media.lib wxmswuniv29ud_xrc.lib wxbase29ud_xml.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_html.lib wxmswuniv29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmswuniv29ud_webview.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_media.lib wxmswuniv29ud_xrc.lib wxbase29ud_xml.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_html.lib wxmswuniv29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswunivud\test_gui.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
@@ -249,7 +249,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmswuniv29u_webview.lib wxmswuniv29u_richtext.lib wxmswuniv29u_media.lib wxmswuniv29u_xrc.lib wxbase29u_xml.lib wxmswuniv29u_adv.lib wxmswuniv29u_html.lib wxmswuniv29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmswuniv29u_webview.lib wxmswuniv29u_richtext.lib wxmswuniv29u_media.lib wxmswuniv29u_xrc.lib wxbase29u_xml.lib wxmswuniv29u_adv.lib wxmswuniv29u_html.lib wxmswuniv29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswunivu\test_gui.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
@@ -319,7 +319,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmsw29ud_webview.lib wxmsw29ud_richtext.lib wxmsw29ud_media.lib wxmsw29ud_xrc.lib wxbase29ud_xml.lib wxmsw29ud_adv.lib wxmsw29ud_html.lib wxmsw29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmsw29ud_webview.lib wxmsw29ud_richtext.lib wxmsw29ud_media.lib wxmsw29ud_xrc.lib wxbase29ud_xml.lib wxmsw29ud_adv.lib wxmsw29ud_html.lib wxmsw29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswuddll\test_gui.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
@@ -384,7 +384,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmsw29u_webview.lib wxmsw29u_richtext.lib wxmsw29u_media.lib wxmsw29u_xrc.lib wxbase29u_xml.lib wxmsw29u_adv.lib wxmsw29u_html.lib wxmsw29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmsw29u_webview.lib wxmsw29u_richtext.lib wxmsw29u_media.lib wxmsw29u_xrc.lib wxbase29u_xml.lib wxmsw29u_adv.lib wxmsw29u_html.lib wxmsw29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswudll\test_gui.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
@@ -454,7 +454,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmswuniv29ud_webview.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_media.lib wxmswuniv29ud_xrc.lib wxbase29ud_xml.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_html.lib wxmswuniv29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmswuniv29ud_webview.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_media.lib wxmswuniv29ud_xrc.lib wxbase29ud_xml.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_html.lib wxmswuniv29ud_core.lib wxbase29ud_net.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswunivuddll\test_gui.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
@@ -519,7 +519,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions=""
AdditionalDependencies="wxmswuniv29u_webview.lib wxmswuniv29u_richtext.lib wxmswuniv29u_media.lib wxmswuniv29u_xrc.lib wxbase29u_xml.lib wxmswuniv29u_adv.lib wxmswuniv29u_html.lib wxmswuniv29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
AdditionalDependencies="wxmswuniv29u_webview.lib wxmswuniv29u_richtext.lib wxmswuniv29u_media.lib wxmswuniv29u_xrc.lib wxbase29u_xml.lib wxmswuniv29u_adv.lib wxmswuniv29u_html.lib wxmswuniv29u_core.lib wxbase29u_net.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib wininet.lib"
OutputFile="vc_mswunivudll\test_gui.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
@@ -790,6 +790,9 @@
<File
RelativePath=".\controls\richtextctrltest.cpp">
</File>
<File
RelativePath=".\controls\searchctrltest.cpp">
</File>
<File
RelativePath=".\misc\selstoretest.cpp">
</File>