Merge branch 'gtk-srchctrl'

Add native wxSearchCtrl implementation for wxGTK.

Closes https://github.com/wxWidgets/wxWidgets/pull/1688
This commit is contained in:
Vadim Zeitlin
2020-01-07 02:41:58 +01:00
10 changed files with 595 additions and 25 deletions

View File

@@ -2960,6 +2960,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_GUI_HDR = \
wx/gtk/bmpcbox.h \ wx/gtk/bmpcbox.h \
wx/gtk/dataview.h \ wx/gtk/dataview.h \
wx/gtk/dvrenderer.h \ wx/gtk/dvrenderer.h \
wx/gtk/srchctrl.h \
wx/generic/fontdlgg.h wx/generic/fontdlgg.h
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_GUI_HDR) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_GUI_HDR)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR = \
@@ -3022,7 +3023,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR = \
wx/gtk/calctrl.h \ wx/gtk/calctrl.h \
wx/gtk/bmpcbox.h \ wx/gtk/bmpcbox.h \
wx/gtk/dataview.h \ wx/gtk/dataview.h \
wx/gtk/dvrenderer.h wx/gtk/dvrenderer.h \
wx/gtk/srchctrl.h
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_GUI_HDR)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_GUI_HDR = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_GUI_HDR = \
wx/generic/fdrepdlg.h \ wx/generic/fdrepdlg.h \
@@ -3084,7 +3086,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_GUI_HDR = \
wx/gtk/calctrl.h \ wx/gtk/calctrl.h \
wx/gtk/bmpcbox.h \ wx/gtk/bmpcbox.h \
wx/gtk/dataview.h \ wx/gtk/dataview.h \
wx/gtk/dvrenderer.h wx/gtk/dvrenderer.h \
wx/gtk/srchctrl.h
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_GUI_HDR) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@GUI_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_GUI_HDR)
COND_TOOLKIT_MOTIF_GUI_HDR = \ COND_TOOLKIT_MOTIF_GUI_HDR = \
wx/generic/clrpickerg.h \ wx/generic/clrpickerg.h \
@@ -5303,6 +5306,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___GUI_SRC_OBJECTS = \
monodll_gtk_dataview.o \ monodll_gtk_dataview.o \
monodll_gtk_bmpcbox.o \ monodll_gtk_bmpcbox.o \
monodll_animate.o \ monodll_animate.o \
monodll_gtk_srchctrl.o \
monodll_fontdlgg.o \ monodll_fontdlgg.o \
monodll_generic_activityindicator.o \ monodll_generic_activityindicator.o \
monodll_gtk_eggtrayicon.o monodll_gtk_eggtrayicon.o
@@ -5368,7 +5372,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS = \
monodll_gtk_taskbar.o \ monodll_gtk_taskbar.o \
monodll_gtk_dataview.o \ monodll_gtk_dataview.o \
monodll_gtk_bmpcbox.o \ monodll_gtk_bmpcbox.o \
monodll_animate.o monodll_animate.o \
monodll_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS = \
monodll_generic_accel.o \ monodll_generic_accel.o \
@@ -5431,7 +5436,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS = \
monodll_gtk_taskbar.o \ monodll_gtk_taskbar.o \
monodll_gtk_dataview.o \ monodll_gtk_dataview.o \
monodll_gtk_bmpcbox.o \ monodll_gtk_bmpcbox.o \
monodll_animate.o monodll_animate.o \
monodll_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS)
COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS = \ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS = \
monodll_motif_accel.o \ monodll_motif_accel.o \
@@ -5606,7 +5612,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS = \
monodll_cocoa_scrolbar.o \ monodll_cocoa_scrolbar.o \
monodll_cocoa_slider.o \ monodll_cocoa_slider.o \
monodll_cocoa_spinbutt.o \ monodll_cocoa_spinbutt.o \
monodll_srchctrl.o \ monodll_cocoa_srchctrl.o \
monodll_cocoa_statbox.o \ monodll_cocoa_statbox.o \
monodll_cocoa_statline.o \ monodll_cocoa_statline.o \
monodll_cocoa_stattext.o \ monodll_cocoa_stattext.o \
@@ -7289,6 +7295,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___GUI_SRC_OBJECTS_1 = \
monolib_gtk_dataview.o \ monolib_gtk_dataview.o \
monolib_gtk_bmpcbox.o \ monolib_gtk_bmpcbox.o \
monolib_animate.o \ monolib_animate.o \
monolib_gtk_srchctrl.o \
monolib_fontdlgg.o \ monolib_fontdlgg.o \
monolib_generic_activityindicator.o \ monolib_generic_activityindicator.o \
monolib_gtk_eggtrayicon.o monolib_gtk_eggtrayicon.o
@@ -7354,7 +7361,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_1 = \
monolib_gtk_taskbar.o \ monolib_gtk_taskbar.o \
monolib_gtk_dataview.o \ monolib_gtk_dataview.o \
monolib_gtk_bmpcbox.o \ monolib_gtk_bmpcbox.o \
monolib_animate.o monolib_animate.o \
monolib_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_1) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_1)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_1 = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_1 = \
monolib_generic_accel.o \ monolib_generic_accel.o \
@@ -7417,7 +7425,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_1 = \
monolib_gtk_taskbar.o \ monolib_gtk_taskbar.o \
monolib_gtk_dataview.o \ monolib_gtk_dataview.o \
monolib_gtk_bmpcbox.o \ monolib_gtk_bmpcbox.o \
monolib_animate.o monolib_animate.o \
monolib_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_1) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_1)
COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_1 = \ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_1 = \
monolib_motif_accel.o \ monolib_motif_accel.o \
@@ -7592,7 +7601,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_1 = \
monolib_cocoa_scrolbar.o \ monolib_cocoa_scrolbar.o \
monolib_cocoa_slider.o \ monolib_cocoa_slider.o \
monolib_cocoa_spinbutt.o \ monolib_cocoa_spinbutt.o \
monolib_srchctrl.o \ monolib_cocoa_srchctrl.o \
monolib_cocoa_statbox.o \ monolib_cocoa_statbox.o \
monolib_cocoa_statline.o \ monolib_cocoa_statline.o \
monolib_cocoa_stattext.o \ monolib_cocoa_stattext.o \
@@ -9420,6 +9429,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___GUI_SRC_OBJECTS_2 = \
coredll_gtk_dataview.o \ coredll_gtk_dataview.o \
coredll_gtk_bmpcbox.o \ coredll_gtk_bmpcbox.o \
coredll_animate.o \ coredll_animate.o \
coredll_gtk_srchctrl.o \
coredll_fontdlgg.o \ coredll_fontdlgg.o \
coredll_generic_activityindicator.o \ coredll_generic_activityindicator.o \
coredll_gtk_eggtrayicon.o coredll_gtk_eggtrayicon.o
@@ -9485,7 +9495,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_2 = \
coredll_gtk_taskbar.o \ coredll_gtk_taskbar.o \
coredll_gtk_dataview.o \ coredll_gtk_dataview.o \
coredll_gtk_bmpcbox.o \ coredll_gtk_bmpcbox.o \
coredll_animate.o coredll_animate.o \
coredll_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_2) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_2)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_2 = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_2 = \
coredll_generic_accel.o \ coredll_generic_accel.o \
@@ -9548,7 +9559,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_2 = \
coredll_gtk_taskbar.o \ coredll_gtk_taskbar.o \
coredll_gtk_dataview.o \ coredll_gtk_dataview.o \
coredll_gtk_bmpcbox.o \ coredll_gtk_bmpcbox.o \
coredll_animate.o coredll_animate.o \
coredll_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_2) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_2 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_2)
COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_2 = \ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_2 = \
coredll_motif_accel.o \ coredll_motif_accel.o \
@@ -9723,7 +9735,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_2 = \
coredll_cocoa_scrolbar.o \ coredll_cocoa_scrolbar.o \
coredll_cocoa_slider.o \ coredll_cocoa_slider.o \
coredll_cocoa_spinbutt.o \ coredll_cocoa_spinbutt.o \
coredll_srchctrl.o \ coredll_cocoa_srchctrl.o \
coredll_cocoa_statbox.o \ coredll_cocoa_statbox.o \
coredll_cocoa_statline.o \ coredll_cocoa_statline.o \
coredll_cocoa_stattext.o \ coredll_cocoa_stattext.o \
@@ -11142,6 +11154,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___GUI_SRC_OBJECTS_3 = \
corelib_gtk_dataview.o \ corelib_gtk_dataview.o \
corelib_gtk_bmpcbox.o \ corelib_gtk_bmpcbox.o \
corelib_animate.o \ corelib_animate.o \
corelib_gtk_srchctrl.o \
corelib_fontdlgg.o \ corelib_fontdlgg.o \
corelib_generic_activityindicator.o \ corelib_generic_activityindicator.o \
corelib_gtk_eggtrayicon.o corelib_gtk_eggtrayicon.o
@@ -11207,7 +11220,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_3 = \
corelib_gtk_taskbar.o \ corelib_gtk_taskbar.o \
corelib_gtk_dataview.o \ corelib_gtk_dataview.o \
corelib_gtk_bmpcbox.o \ corelib_gtk_bmpcbox.o \
corelib_animate.o corelib_animate.o \
corelib_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_3) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_3@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_3___GUI_SRC_OBJECTS_3)
COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_3 = \ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_3 = \
corelib_generic_accel.o \ corelib_generic_accel.o \
@@ -11270,7 +11284,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_3 = \
corelib_gtk_taskbar.o \ corelib_gtk_taskbar.o \
corelib_gtk_dataview.o \ corelib_gtk_dataview.o \
corelib_gtk_bmpcbox.o \ corelib_gtk_bmpcbox.o \
corelib_animate.o corelib_animate.o \
corelib_gtk_srchctrl.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_3) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_4@__GUI_SRC_OBJECTS_3 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_4___GUI_SRC_OBJECTS_3)
COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_3 = \ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_3 = \
corelib_motif_accel.o \ corelib_motif_accel.o \
@@ -11445,7 +11460,7 @@ COND_TOOLKIT_OSX_COCOA___GUI_SRC_OBJECTS_3 = \
corelib_cocoa_scrolbar.o \ corelib_cocoa_scrolbar.o \
corelib_cocoa_slider.o \ corelib_cocoa_slider.o \
corelib_cocoa_spinbutt.o \ corelib_cocoa_spinbutt.o \
corelib_srchctrl.o \ corelib_cocoa_srchctrl.o \
corelib_cocoa_statbox.o \ corelib_cocoa_statbox.o \
corelib_cocoa_statline.o \ corelib_cocoa_statline.o \
corelib_cocoa_stattext.o \ corelib_cocoa_stattext.o \
@@ -16493,7 +16508,7 @@ monodll_cocoa_slider.o: $(srcdir)/src/osx/cocoa/slider.mm $(MONODLL_ODEP)
monodll_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(MONODLL_ODEP) monodll_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm
monodll_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(MONODLL_ODEP) monodll_cocoa_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm $(CXXC) -c -o $@ $(MONODLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm
monodll_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(MONODLL_ODEP) monodll_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(MONODLL_ODEP)
@@ -19691,6 +19706,15 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@monodll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@monodll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp
@@ -21761,7 +21785,7 @@ monolib_cocoa_slider.o: $(srcdir)/src/osx/cocoa/slider.mm $(MONOLIB_ODEP)
monolib_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(MONOLIB_ODEP) monolib_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm
monolib_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(MONOLIB_ODEP) monolib_cocoa_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm $(CXXC) -c -o $@ $(MONOLIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm
monolib_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(MONOLIB_ODEP) monolib_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(MONOLIB_ODEP)
@@ -24959,6 +24983,15 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@monolib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@monolib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp
@@ -27686,7 +27719,7 @@ coredll_cocoa_slider.o: $(srcdir)/src/osx/cocoa/slider.mm $(COREDLL_ODEP)
coredll_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(COREDLL_ODEP) coredll_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm
coredll_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(COREDLL_ODEP) coredll_cocoa_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(COREDLL_ODEP)
$(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm $(CXXC) -c -o $@ $(COREDLL_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm
coredll_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(COREDLL_ODEP) coredll_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(COREDLL_ODEP)
@@ -30308,6 +30341,15 @@ coredll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_animate.o: $(srcdir)/src/gtk/animate.cpp $(COREDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_animate.o: $(srcdir)/src/gtk/animate.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@coredll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@coredll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(COREDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp
@@ -31943,7 +31985,7 @@ corelib_cocoa_slider.o: $(srcdir)/src/osx/cocoa/slider.mm $(CORELIB_ODEP)
corelib_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(CORELIB_ODEP) corelib_cocoa_spinbutt.o: $(srcdir)/src/osx/cocoa/spinbutt.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/spinbutt.mm
corelib_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(CORELIB_ODEP) corelib_cocoa_srchctrl.o: $(srcdir)/src/osx/cocoa/srchctrl.mm $(CORELIB_ODEP)
$(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm $(CXXC) -c -o $@ $(CORELIB_OBJCXXFLAGS) $(srcdir)/src/osx/cocoa/srchctrl.mm
corelib_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(CORELIB_ODEP) corelib_cocoa_statbox.o: $(srcdir)/src/osx/cocoa/statbox.mm $(CORELIB_ODEP)
@@ -34565,6 +34607,15 @@ corelib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_animate.o: $(srcdir)/src/gtk/animate.cpp $(CORELIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_animate.o: $(srcdir)/src/gtk/animate.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@corelib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_4_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@corelib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_3_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_gtk_srchctrl.o: $(srcdir)/src/gtk/srchctrl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/srchctrl.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(CORELIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_fontdlgg.o: $(srcdir)/src/generic/fontdlgg.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/fontdlgg.cpp

View File

@@ -1516,6 +1516,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/gtk/dataview.cpp src/gtk/dataview.cpp
src/gtk/bmpcbox.cpp src/gtk/bmpcbox.cpp
src/gtk/animate.cpp src/gtk/animate.cpp
src/gtk/srchctrl.cpp
</set> </set>
<set var="GTK2_SRC" hints="files"> <set var="GTK2_SRC" hints="files">
$(GTK_SRC) $(GTK_SRC)
@@ -1585,6 +1586,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/gtk/bmpcbox.h wx/gtk/bmpcbox.h
wx/gtk/dataview.h wx/gtk/dataview.h
wx/gtk/dvrenderer.h wx/gtk/dvrenderer.h
wx/gtk/srchctrl.h
</set> </set>
<set var="GTK2_HDR" hints="files"> <set var="GTK2_HDR" hints="files">
$(GTK_HDR) $(GTK_HDR)

View File

@@ -1403,6 +1403,7 @@ set(GTK_SRC
src/gtk/animate.cpp src/gtk/animate.cpp
src/gtk/bmpcbox.cpp src/gtk/bmpcbox.cpp
src/gtk/hyperlink.cpp src/gtk/hyperlink.cpp
src/gtk/srchctrl.cpp
) )
set(GTK2_SRC set(GTK2_SRC
@@ -1474,6 +1475,7 @@ set(GTK_HDR
wx/gtk/taskbar.h wx/gtk/taskbar.h
wx/gtk/activityindicator.h wx/gtk/activityindicator.h
wx/gtk/hyperlink.h wx/gtk/hyperlink.h
wx/gtk/srchctrl.h
) )
set(GTK2_HDR set(GTK2_HDR

View File

@@ -1399,6 +1399,7 @@ GTK_SRC =
src/gtk/slider.cpp src/gtk/slider.cpp
src/gtk/spinbutt.cpp src/gtk/spinbutt.cpp
src/gtk/spinctrl.cpp src/gtk/spinctrl.cpp
src/gtk/srchctrl.cpp
src/gtk/statbmp.cpp src/gtk/statbmp.cpp
src/gtk/statbox.cpp src/gtk/statbox.cpp
src/gtk/statline.cpp src/gtk/statline.cpp
@@ -1469,6 +1470,7 @@ GTK_HDR =
wx/gtk/slider.h wx/gtk/slider.h
wx/gtk/spinbutt.h wx/gtk/spinbutt.h
wx/gtk/spinctrl.h wx/gtk/spinctrl.h
wx/gtk/srchctrl.h
wx/gtk/statbmp.h wx/gtk/statbmp.h
wx/gtk/statbox.h wx/gtk/statbox.h
wx/gtk/statline.h wx/gtk/statline.h

117
include/wx/gtk/srchctrl.h Normal file
View File

@@ -0,0 +1,117 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/gtk/srchctrl.h
// Purpose: wxSearchCtrl class - native
// Author: Kettab Ali
// Created: 2019-12-23
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GTK_SEARCHCTRL_H_
#define _WX_GTK_SEARCHCTRL_H_
#if wxUSE_SEARCHCTRL
// ----------------------------------------------------------------------------
// wxSearchCtrl
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase
{
public:
// creation
// --------
wxSearchCtrl() : wxSearchCtrlBase()
{
Init();
}
wxSearchCtrl(wxWindow *parent, wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr)
: wxSearchCtrlBase()
{
Init();
Create(parent, id, value, pos, size, style, validator, name);
}
virtual ~wxSearchCtrl();
bool Create(wxWindow *parent, wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxSearchCtrlNameStr);
#if wxUSE_MENUS
// get/set search button menu
// --------------------------
virtual void SetMenu( wxMenu* menu ) wxOVERRIDE;
virtual wxMenu* GetMenu() wxOVERRIDE;
#endif // wxUSE_MENUS
// get/set search options
// ----------------------
virtual void ShowSearchButton( bool show ) wxOVERRIDE;
virtual bool IsSearchButtonVisible() const wxOVERRIDE;
virtual void ShowCancelButton( bool show ) wxOVERRIDE;
virtual bool IsCancelButtonVisible() const wxOVERRIDE;
virtual void SetDescriptiveText(const wxString& text) wxOVERRIDE;
virtual wxString GetDescriptiveText() const wxOVERRIDE;
virtual void Clear() wxOVERRIDE;
#if wxUSE_MENUS
void PopupSearchMenu();
#endif // wxUSE_MENUS
private:
// From wxTextEntry:
virtual GtkEditable *GetEditable() const wxOVERRIDE;
void Init();
void GTKCreateSearchEntryWidget();
// Event handlers
void OnChar(wxKeyEvent& event);
void OnText(wxCommandEvent& event);
void OnTextEnter(wxCommandEvent& event);
bool HasMenu() const
{
#if wxUSE_MENUS
return m_menu != NULL;
#else // !wxUSE_MENUS
return false;
#endif // wxUSE_MENUS/!wxUSE_MENUS
}
private:
virtual GtkEntry *GetEntry() const wxOVERRIDE
{ return m_entry; }
GtkEntry *m_entry;
#if wxUSE_MENUS
wxMenu *m_menu;
#endif // wxUSE_MENUS
bool m_cancelButtonVisible;
wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl);
wxDECLARE_EVENT_TABLE();
};
#endif // wxUSE_SEARCHCTRL
#endif // _WX_GTK_SEARCHCTRL_H_

View File

@@ -16,12 +16,7 @@
#include "wx/textctrl.h" #include "wx/textctrl.h"
#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__) #if (!defined(__WXMAC__) && !defined(__WXGTK20__)) || defined(__WXUNIVERSAL__)
// search control was introduced in Mac OS X 10.3 Panther
#define wxUSE_NATIVE_SEARCH_CONTROL 1
#define wxSearchCtrlBaseBaseClass wxTextCtrl
#else
// no native version, use the generic one // no native version, use the generic one
#define wxUSE_NATIVE_SEARCH_CONTROL 0 #define wxUSE_NATIVE_SEARCH_CONTROL 0
@@ -33,6 +28,22 @@
public wxTextCtrlIface public wxTextCtrlIface
{ {
}; };
#elif defined(__WXMAC__)
// search control was introduced in Mac OS X 10.3 Panther
#define wxUSE_NATIVE_SEARCH_CONTROL 1
#define wxSearchCtrlBaseBaseClass wxTextCtrl
#elif defined(__WXGTK20__)
// Use GtkSearchEntry if available, construct a similar one using GtkEntry
// otherwise.
#define wxUSE_NATIVE_SEARCH_CONTROL 1
class WXDLLIMPEXP_CORE wxGTKSearchCtrlBase
: public wxControl, public wxTextEntry
{
};
#define wxSearchCtrlBaseBaseClass wxGTKSearchCtrlBase
#endif #endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -81,6 +92,8 @@ private:
#if wxUSE_NATIVE_SEARCH_CONTROL #if wxUSE_NATIVE_SEARCH_CONTROL
#if defined(__WXMAC__) #if defined(__WXMAC__)
#include "wx/osx/srchctrl.h" #include "wx/osx/srchctrl.h"
#elif defined(__WXGTK__)
#include "wx/gtk/srchctrl.h"
#endif #endif
#else #else
#include "wx/generic/srchctlg.h" #include "wx/generic/srchctlg.h"

View File

@@ -11,6 +11,9 @@
A search control is a composite control with a search button, a text A search control is a composite control with a search button, a text
control, and a cancel button. control, and a cancel button.
This control is implemented natively under macOS and GTK 3.6 or later and
generically for all the other platforms.
@beginStyleTable @beginStyleTable
@style{wxTE_PROCESS_TAB} @style{wxTE_PROCESS_TAB}
The control will receive @c wxEVT_CHAR events for TAB pressed - The control will receive @c wxEVT_CHAR events for TAB pressed -
@@ -138,13 +141,21 @@ public:
/** /**
Shows or hides the cancel button. Shows or hides the cancel button.
Note that this function does nothing in the native GTK version of the
control: "Cancel" button is always shown automatically if the control
is not empty and hidden if it is empty.
*/ */
virtual void ShowCancelButton(bool show); virtual void ShowCancelButton(bool show);
/** /**
Sets the search button visibility value on the search control. Sets the search button visibility value on the search control.
If there is a menu attached, the search button will be visible regardless of If there is a menu attached, the search button will be visible regardless of
the search button visibility value. the search button visibility value.
Note that this function does nothing in the native GTK version of the
control: "Search" button is always shown there.
*/ */
virtual void ShowSearchButton(bool show); virtual void ShowSearchButton(bool show);

View File

@@ -124,7 +124,7 @@ wxEND_EVENT_TABLE()
// implementation // implementation
// ============================================================================ // ============================================================================
#if defined(__WXMAC__) #if defined(__WXMAC__) || defined(__WXGTK20__)
#define FAMILY_CTRLS NATIVE_CTRLS #define FAMILY_CTRLS NATIVE_CTRLS
#else #else
#define FAMILY_CTRLS GENERIC_CTRLS #define FAMILY_CTRLS GENERIC_CTRLS

View File

@@ -40,6 +40,7 @@
#include "wx/combobox.h" #include "wx/combobox.h"
#include "wx/control.h" #include "wx/control.h"
#include "wx/dc.h" #include "wx/dc.h"
#include "wx/srchctrl.h"
#include "wx/spinbutt.h" #include "wx/spinbutt.h"
#include "wx/textctrl.h" #include "wx/textctrl.h"
#include "wx/validate.h" #include "wx/validate.h"
@@ -459,6 +460,12 @@ wxString wxCommandEvent::GetString() const
if ( combo ) if ( combo )
return combo->GetValue(); return combo->GetValue();
#endif // wxUSE_COMBOBOX #endif // wxUSE_COMBOBOX
#if wxUSE_SEARCHCTRL
wxSearchCtrl* search = wxDynamicCast(m_eventObject, wxSearchCtrl);
if ( search )
return search->GetValue();
#endif // wxUSE_SEARCHCTRL
} }
return m_cmdString; return m_cmdString;

365
src/gtk/srchctrl.cpp Normal file
View File

@@ -0,0 +1,365 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/gtk/srchctrl.cpp
// Purpose: wxSearchCtrl implementation - native
// Author: Kettab Ali
// Created: 2019-12-23
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_SEARCHCTRL
#include "wx/srchctrl.h"
#ifndef WX_PRECOMP
#include "wx/menu.h"
#endif //WX_PRECOMP
#include "wx/utils.h"
#include "wx/gtk/private.h"
#include "wx/gtk/private/gtk3-compat.h"
#if GTK_CHECK_VERSION(3,6,0)
// GtkSearchEntry is available only for GTK+ >= 3.6
#define wxHAS_GTK_SEARCH_ENTRY
#endif // GTK >= 3.6
namespace // anonymous
{
// A more readable way to check for GtkSearchEntry availability.
inline bool HasGtkSearchEntry()
{
#ifdef wxHAS_GTK_SEARCH_ENTRY
return wx_is_at_least_gtk3(6);
#else
return false;
#endif
}
inline GtkWidget* CreateGtkSearchEntryIfAvailable()
{
#ifdef wxHAS_GTK_SEARCH_ENTRY
if ( wx_is_at_least_gtk3(6) )
{
return gtk_search_entry_new();
}
#endif // wxHAS_GTK_SEARCH_ENTRY
// No GtkSearchEntry! fallback to the plain GtkEntry.
return gtk_entry_new();
}
}
// ============================================================================
// signal handlers implementation
// ============================================================================
extern "C" {
static void
wx_gtk_icon_press(GtkEntry* WXUNUSED(entry),
gint position,
GdkEventButton* WXUNUSED(event),
wxSearchCtrl* ctrl)
{
if ( position == GTK_ENTRY_ICON_PRIMARY )
{
// 1- Notice that contrary to the generic version, we don't generate the
// wxEVT_SEARCH event here, which is the native behaviour of the
// GtkSearchEntry (the search icon is inactive for a GtkSearchEntry).
//
// 2- If the wxSearchCtrl has a menu associated with it, we explicitly
// make the search icon clickable as a way to display the menu.
ctrl->PopupSearchMenu();
}
else // position == GTK_ENTRY_ICON_SECONDARY
{
if ( !HasGtkSearchEntry() )
{
// No need to call this for a GtkSearchEntry.
ctrl->Clear();
}
wxCommandEvent event(wxEVT_SEARCH_CANCEL, ctrl->GetId());
event.SetEventObject(ctrl);
ctrl->HandleWindowEvent(event);
}
}
}
// ============================================================================
// wxSearchCtrl implementation
// ============================================================================
wxBEGIN_EVENT_TABLE(wxSearchCtrl, wxControl)
EVT_CHAR(wxSearchCtrl::OnChar)
EVT_TEXT(wxID_ANY, wxSearchCtrl::OnText)
EVT_TEXT_ENTER(wxID_ANY, wxSearchCtrl::OnTextEnter)
wxEND_EVENT_TABLE()
wxIMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxControl);
// ----------------------------------------------------------------------------
// creation/destruction
// ----------------------------------------------------------------------------
// destruction
// -----------
wxSearchCtrl::~wxSearchCtrl()
{
#if wxUSE_MENUS
delete m_menu;
#endif // wxUSE_MENUS
}
// creation
// --------
void wxSearchCtrl::Init()
{
m_entry = NULL;
#if wxUSE_MENUS
m_menu = NULL;
#endif // wxUSE_MENUS
m_cancelButtonVisible = false;
}
bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
if ( !PreCreation(parent, pos, size) ||
!CreateBase(parent, id, pos, size, style | wxTE_PROCESS_ENTER,
validator, name) )
{
wxFAIL_MSG( "wxSearchCtrl creation failed" );
return false;
}
GTKCreateSearchEntryWidget();
if ( HasFlag(wxBORDER_NONE) )
{
g_object_set (m_widget, "has-frame", FALSE, NULL);
}
GtkEntry * const entry = GetEntry();
// Theoretically m_entry cannot be null, and the test here
// is just for safety reasons.
if ( !entry )
return false;
// Set it up to trigger default item on enter key press
gtk_entry_set_activates_default(entry, !HasFlag(wxTE_PROCESS_ENTER));
gtk_editable_set_editable(GTK_EDITABLE(entry), true);
#ifdef __WXGTK3__
gtk_entry_set_width_chars(entry, 1);
#endif
m_parent->DoAddChild(this);
m_focusWidget = GTK_WIDGET(entry);
PostCreation(size);
gtk_entry_set_text(entry, wxGTK_CONV(value));
SetHint(_("Search"));
GTKConnectChangedSignal();
GTKConnectInsertTextSignal(entry);
GTKConnectClipboardSignals(GTK_WIDGET(entry));
return true;
}
void wxSearchCtrl::GTKCreateSearchEntryWidget()
{
m_widget = CreateGtkSearchEntryIfAvailable();
g_object_ref(m_widget);
m_entry = GTK_ENTRY(m_widget);
if ( !HasGtkSearchEntry() )
{
// Add the search icon and make it looks as native as one would expect
// (i.e. GtkSearchEntry).
gtk_entry_set_icon_from_icon_name(m_entry,
GTK_ENTRY_ICON_PRIMARY,
"edit-find-symbolic");
gtk_entry_set_icon_sensitive(m_entry, GTK_ENTRY_ICON_PRIMARY, FALSE);
gtk_entry_set_icon_activatable(m_entry, GTK_ENTRY_ICON_PRIMARY, FALSE);
}
g_signal_connect(m_entry, "icon-press", G_CALLBACK(wx_gtk_icon_press), this);
}
GtkEditable *wxSearchCtrl::GetEditable() const
{
return GTK_EDITABLE(m_entry);
}
void wxSearchCtrl::Clear()
{
wxTextEntry::Clear();
ShowCancelButton(false);
}
// search control specific interfaces
// ----------------------------------
#if wxUSE_MENUS
void wxSearchCtrl::SetMenu( wxMenu* menu )
{
if ( menu == m_menu )
{
// no change
return;
}
delete m_menu;
m_menu = menu;
const bool hasMenu = m_menu != NULL;
gtk_entry_set_icon_sensitive(m_entry, GTK_ENTRY_ICON_PRIMARY, hasMenu);
gtk_entry_set_icon_activatable(m_entry, GTK_ENTRY_ICON_PRIMARY, hasMenu);
}
wxMenu* wxSearchCtrl::GetMenu()
{
return m_menu;
}
#endif // wxUSE_MENUS
void wxSearchCtrl::ShowSearchButton(bool WXUNUSED(show))
{
// Search button is always shown in the native control.
}
bool wxSearchCtrl::IsSearchButtonVisible() const
{
// Search button is always shown in the native control.
return true;
}
void wxSearchCtrl::ShowCancelButton(bool show)
{
// The cancel button is shown/hidden automatically by the GtkSearchEntry.
if ( HasGtkSearchEntry() )
return;
if ( show == IsCancelButtonVisible() )
{
// no change
return;
}
gtk_entry_set_icon_from_icon_name(m_entry,
GTK_ENTRY_ICON_SECONDARY,
show ? "edit-clear-symbolic" : NULL);
m_cancelButtonVisible = show;
}
bool wxSearchCtrl::IsCancelButtonVisible() const
{
if ( HasGtkSearchEntry() )
{
return !IsEmpty();
}
return m_cancelButtonVisible;
}
void wxSearchCtrl::SetDescriptiveText(const wxString& text)
{
wxTextEntry::SetHint(text);
}
wxString wxSearchCtrl::GetDescriptiveText() const
{
return wxTextEntry::GetHint();
}
// Events
// ----------
void wxSearchCtrl::OnChar(wxKeyEvent& key_event)
{
wxCHECK_RET( m_entry != NULL, "invalid search ctrl" );
if ( key_event.GetKeyCode() == WXK_RETURN )
{
if ( HasFlag(wxTE_PROCESS_ENTER) )
{
wxCommandEvent event(wxEVT_TEXT_ENTER, m_windowId);
event.SetEventObject(this);
event.SetString(GetValue());
if ( HandleWindowEvent(event) )
return;
// We disable built-in default button activation when
// wxTE_PROCESS_ENTER is used, but we still should activate it
// if the event wasn't handled, so do it from here.
if ( ClickDefaultButtonIfPossible() )
return;
}
}
key_event.Skip();
}
void wxSearchCtrl::OnText(wxCommandEvent& event)
{
ShowCancelButton(!IsEmpty());
event.Skip();
}
void wxSearchCtrl::OnTextEnter(wxCommandEvent& WXUNUSED(event))
{
if ( !IsEmpty() )
{
wxCommandEvent evt(wxEVT_SEARCH, GetId());
evt.SetEventObject(this);
evt.SetString(GetValue());
ProcessWindowEvent(evt);
}
}
#if wxUSE_MENUS
void wxSearchCtrl::PopupSearchMenu()
{
if ( m_menu )
{
const wxSize size = GetSize();
PopupMenu(m_menu, 0, size.y);
}
}
#endif // wxUSE_MENUS
#endif // wxUSE_SEARCHCTRL