Add native wxSearchCtrl for GTK+ port

This commit is contained in:
AliKet
2019-12-27 16:18:14 +01:00
committed by Vadim Zeitlin
parent a7f31db8cd
commit c09db9c23d
7 changed files with 658 additions and 24 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

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

@@ -0,0 +1,139 @@
/////////////////////////////////////////////////////////////////////////////
// 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;
// accessors
// ---------
virtual int GetLineLength(long lineNo) const wxOVERRIDE;
virtual wxString GetLineText(long lineNo) const wxOVERRIDE;
virtual int GetNumberOfLines() const wxOVERRIDE;
virtual bool IsModified() const wxOVERRIDE;
// sets/clears the dirty flag
virtual void MarkDirty() wxOVERRIDE;
virtual void DiscardEdits() wxOVERRIDE;
// translate between the position (which is just an index in the text ctrl
// considering all its contents as a single strings) and (x, y) coordinates
// which represent column and line.
virtual long XYToPosition(long x, long y) const wxOVERRIDE;
virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE;
virtual void ShowPosition(long pos) wxOVERRIDE;
virtual void Clear() wxOVERRIDE;
#if wxUSE_MENUS
void PopupSearchMenu();
#endif // wxUSE_MENUS
private:
// From wxTextEntry:
virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; }
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_modified;
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,17 @@
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
#define wxSearchCtrlBaseBaseClass wxTextCtrlBase
#endif #endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -81,6 +87,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"

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

@@ -0,0 +1,430 @@
/////////////////////////////////////////////////////////////////////////////
// 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, wxSearchCtrlBase)
EVT_CHAR(wxSearchCtrl::OnChar)
EVT_TEXT(wxID_ANY, wxSearchCtrl::OnText)
EVT_TEXT_ENTER(wxID_ANY, wxSearchCtrl::OnTextEnter)
wxEND_EVENT_TABLE()
wxIMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxSearchCtrlBase);
// ----------------------------------------------------------------------------
// 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);
}
bool wxSearchCtrl::IsModified() const
{
return m_modified;
}
void wxSearchCtrl::MarkDirty()
{
m_modified = true;
}
void wxSearchCtrl::DiscardEdits()
{
m_modified = false;
}
bool wxSearchCtrl::PositionToXY(long pos, long *x, long *y ) const
{
if (pos <= GTKGetEntryTextLength(GetEntry()))
{
if ( y )
*y = 0;
if ( x )
*x = pos;
}
else
{
// index out of bounds
return false;
}
return true;
}
long wxSearchCtrl::XYToPosition(long x, long y ) const
{
if ( y != 0 || x > GTKGetEntryTextLength(GetEntry()) )
return -1;
return x;
}
int wxSearchCtrl::GetLineLength(long lineNo) const
{
const wxString str = GetLineText(lineNo);
return (int) str.length();
}
int wxSearchCtrl::GetNumberOfLines() const
{
return 1;
}
wxString wxSearchCtrl::GetLineText( long lineNo ) const
{
if ( lineNo == 0 )
return GetValue();
return wxString();
}
void wxSearchCtrl::ShowPosition( long pos )
{
gtk_editable_set_position(GetEditable(), pos);
}
// 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