From 978c6e41132adde512a0a72e5b073ba9251714d1 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 5 Nov 2007 23:13:09 +0000 Subject: [PATCH] implemented wxTextEntry for wxMotif, made wxComboBox derive from it git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- Makefile.in | 177 +++++++++++++++++------------- build/bakefiles/files.bkl | 16 ++- include/wx/motif/combobox.h | 52 ++++----- include/wx/motif/textctrl.h | 65 +++-------- include/wx/motif/textentry.h | 59 ++++++++++ include/wx/textentry.h | 4 +- src/common/valtext.cpp | 3 - src/motif/combobox.cpp | 67 +----------- src/motif/combobox_native.cpp | 12 +- src/motif/textentry.cpp | 200 ++++++++++++++++++++++++++++++++++ 10 files changed, 427 insertions(+), 228 deletions(-) create mode 100644 include/wx/motif/textentry.h create mode 100644 src/motif/textentry.cpp diff --git a/Makefile.in b/Makefile.in index 41a59cf992..59eb959205 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2492,7 +2492,6 @@ COND_TOOLKIT_MAC_GUI_HDR = \ wx/html/webkit.h @COND_TOOLKIT_MAC@GUI_HDR = $(COND_TOOLKIT_MAC_GUI_HDR) COND_TOOLKIT_MOTIF_GUI_HDR = \ - wx/generic/animate.h \ wx/generic/clrpickerg.h \ wx/generic/collpaneg.h \ wx/generic/colrdlgg.h \ @@ -2557,6 +2556,7 @@ COND_TOOLKIT_MOTIF_GUI_HDR = \ wx/motif/statbox.h \ wx/motif/stattext.h \ wx/motif/textctrl.h \ + wx/motif/textentry.h \ wx/motif/tglbtn.h \ wx/motif/toolbar.h \ wx/motif/toplevel.h \ @@ -2916,9 +2916,12 @@ COND_TOOLKIT_MAC_ADVANCED_PLATFORM_HDR = \ wx/mac/carbon/taskbarosx.h \ wx/mac/corefoundation/joystick.h @COND_TOOLKIT_MAC@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_MAC_ADVANCED_PLATFORM_HDR) -@COND_TOOLKIT_MOTIF@ADVANCED_PLATFORM_HDR = \ -@COND_TOOLKIT_MOTIF@ wx/unix/joystick.h wx/unix/sound.h \ -@COND_TOOLKIT_MOTIF@ wx/unix/taskbarx11.h +COND_TOOLKIT_MOTIF_ADVANCED_PLATFORM_HDR = \ + wx/unix/joystick.h \ + wx/unix/sound.h \ + wx/unix/taskbarx11.h \ + wx/generic/animate.h +@COND_TOOLKIT_MOTIF@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_MOTIF_ADVANCED_PLATFORM_HDR) COND_TOOLKIT_MSW_ADVANCED_PLATFORM_HDR = \ wx/generic/animate.h \ wx/msw/sound.h \ @@ -4680,13 +4683,13 @@ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS = \ monodll_statbox.o \ monodll_stattext.o \ monodll_textctrl.o \ + monodll_textentry.o \ monodll_timer.o \ monodll_toolbar.o \ monodll_toplevel.o \ monodll_utils.o \ monodll_window.o \ monodll_xmcombo.o \ - monodll_animateg.o \ monodll_clrpickerg.o \ monodll_collpaneg.o \ monodll_colrdlgg.o \ @@ -6559,13 +6562,13 @@ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_1 = \ monolib_statbox.o \ monolib_stattext.o \ monolib_textctrl.o \ + monolib_textentry.o \ monolib_timer.o \ monolib_toolbar.o \ monolib_toplevel.o \ monolib_utils.o \ monolib_window.o \ monolib_xmcombo.o \ - monolib_animateg.o \ monolib_clrpickerg.o \ monolib_collpaneg.o \ monolib_colrdlgg.o \ @@ -8715,13 +8718,13 @@ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_2 = \ coredll_statbox.o \ coredll_stattext.o \ coredll_textctrl.o \ + coredll_textentry.o \ coredll_timer.o \ coredll_toolbar.o \ coredll_toplevel.o \ coredll_utils.o \ coredll_window.o \ coredll_xmcombo.o \ - coredll_animateg.o \ coredll_clrpickerg.o \ coredll_collpaneg.o \ coredll_colrdlgg.o \ @@ -10209,13 +10212,13 @@ COND_TOOLKIT_MOTIF___GUI_SRC_OBJECTS_3 = \ corelib_statbox.o \ corelib_stattext.o \ corelib_textctrl.o \ + corelib_textentry.o \ corelib_timer.o \ corelib_toolbar.o \ corelib_toplevel.o \ corelib_utils.o \ corelib_window.o \ corelib_xmcombo.o \ - corelib_animateg.o \ corelib_clrpickerg.o \ corelib_collpaneg.o \ corelib_colrdlgg.o \ @@ -11648,7 +11651,8 @@ COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_taskbarcmn.o \ monodll_joystick.o \ monodll_sound.o \ - monodll_taskbarx11.o + monodll_taskbarx11.o \ + monodll_animateg.o @COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS) COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_taskbarcmn.o \ @@ -11724,7 +11728,8 @@ COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_taskbarcmn.o \ monolib_joystick.o \ monolib_sound.o \ - monolib_taskbarx11.o + monolib_taskbarx11.o \ + monolib_animateg.o @COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_0) COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_taskbarcmn.o \ @@ -11796,9 +11801,13 @@ COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_taskbar.o \ advdll_hidjoystick.o @COND_TOOLKIT_MAC@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_8) -@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ -@COND_TOOLKIT_MOTIF@ advdll_taskbarcmn.o advdll_joystick.o advdll_sound.o \ -@COND_TOOLKIT_MOTIF@ advdll_taskbarx11.o +COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ + advdll_taskbarcmn.o \ + advdll_joystick.o \ + advdll_sound.o \ + advdll_taskbarx11.o \ + advdll_animateg.o +@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_8) COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_taskbarcmn.o \ advdll_animateg.o \ @@ -11860,9 +11869,13 @@ COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_taskbar.o \ advlib_hidjoystick.o @COND_TOOLKIT_MAC@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_9) -@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ -@COND_TOOLKIT_MOTIF@ advlib_taskbarcmn.o advlib_joystick.o advlib_sound.o \ -@COND_TOOLKIT_MOTIF@ advlib_taskbarx11.o +COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ + advlib_taskbarcmn.o \ + advlib_joystick.o \ + advlib_sound.o \ + advlib_taskbarx11.o \ + advlib_animateg.o +@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_9) COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_taskbarcmn.o \ advlib_animateg.o \ @@ -16863,6 +16876,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monodll_textentry.o: $(srcdir)/src/gtk/textentry.cpp $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/textentry.cpp +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@monodll_textentry.o: $(srcdir)/src/motif/textentry.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/motif/textentry.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_textentry.o: $(srcdir)/src/msw/textentry.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/textentry.cpp @@ -17034,30 +17050,6 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_USE_GUI_1_WXUNIV_1@monodll_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(MONODLL_ODEP) @COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_USE_GUI_1_WXUNIV_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_MSW_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_WINCE_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_MAC_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_COCOA_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_PM_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) -@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_combo.o: $(srcdir)/src/msw/combo.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp @@ -17571,6 +17563,30 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@monodll_vscroll.o: $(srcdir)/src/generic/vscroll.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/vscroll.cpp +@COND_USE_GUI_1_WXUNIV_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MSW_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_WINCE_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MAC_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_COCOA_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MOTIF_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_PM_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + @COND_USE_GUI_1@monodll_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp @@ -21312,6 +21328,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@monolib_textentry.o: $(srcdir)/src/gtk/textentry.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/textentry.cpp +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@monolib_textentry.o: $(srcdir)/src/motif/textentry.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/motif/textentry.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_textentry.o: $(srcdir)/src/msw/textentry.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/textentry.cpp @@ -21483,30 +21502,6 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1_WXUNIV_1@monolib_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_USE_GUI_1_WXUNIV_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_MSW_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_WINCE_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_MAC_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_COCOA_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_TOOLKIT_PM_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) -@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_combo.o: $(srcdir)/src/msw/combo.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp @@ -22020,6 +22015,30 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@monolib_vscroll.o: $(srcdir)/src/generic/vscroll.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/vscroll.cpp +@COND_USE_GUI_1_WXUNIV_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MSW_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_WINCE_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MAC_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_COCOA_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_MOTIF_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + +@COND_TOOLKIT_PM_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + @COND_USE_GUI_1@monolib_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp @@ -24081,6 +24100,9 @@ coredll_regiong.o: $(srcdir)/src/generic/regiong.cpp $(COREDLL_ODEP) coredll_gsockpm.o: $(srcdir)/src/os2/gsockpm.cpp $(COREDLL_ODEP) $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/os2/gsockpm.cpp +coredll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(COREDLL_ODEP) + $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + coredll_colschem.o: $(srcdir)/src/univ/colschem.cpp $(COREDLL_ODEP) $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/colschem.cpp @@ -26316,6 +26338,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@coredll_textentry.o: $(srcdir)/src/gtk/textentry.cpp $(COREDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/gtk/textentry.cpp +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@coredll_textentry.o: $(srcdir)/src/motif/textentry.cpp $(COREDLL_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/motif/textentry.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_textentry.o: $(srcdir)/src/msw/textentry.cpp $(COREDLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/textentry.cpp @@ -26487,12 +26512,6 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP) @COND_USE_GUI_1_WXUNIV_1@coredll_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(COREDLL_ODEP) @COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@coredll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(COREDLL_ODEP) -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_USE_GUI_1_WXUNIV_1@coredll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(COREDLL_ODEP) -@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_combo.o: $(srcdir)/src/msw/combo.cpp $(COREDLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp @@ -27150,6 +27169,9 @@ corelib_regiong.o: $(srcdir)/src/generic/regiong.cpp $(CORELIB_ODEP) corelib_gsockpm.o: $(srcdir)/src/os2/gsockpm.cpp $(CORELIB_ODEP) $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/os2/gsockpm.cpp +corelib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(CORELIB_ODEP) + $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + corelib_colschem.o: $(srcdir)/src/univ/colschem.cpp $(CORELIB_ODEP) $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/colschem.cpp @@ -29385,6 +29407,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@corelib_textentry.o: $(srcdir)/src/gtk/textentry.cpp $(CORELIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/gtk/textentry.cpp +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@corelib_textentry.o: $(srcdir)/src/motif/textentry.cpp $(CORELIB_ODEP) +@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/motif/textentry.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_textentry.o: $(srcdir)/src/msw/textentry.cpp $(CORELIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/textentry.cpp @@ -29556,12 +29581,6 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP) @COND_USE_GUI_1_WXUNIV_1@corelib_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(CORELIB_ODEP) @COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@corelib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(CORELIB_ODEP) -@COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - -@COND_USE_GUI_1_WXUNIV_1@corelib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(CORELIB_ODEP) -@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp - @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_combo.o: $(srcdir)/src/msw/combo.cpp $(CORELIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp @@ -30147,6 +30166,9 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_COCOA@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp +@COND_TOOLKIT_MOTIF@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP) +@COND_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp @@ -30387,6 +30409,9 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_COCOA@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp +@COND_TOOLKIT_MOTIF@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP) +@COND_TOOLKIT_MOTIF@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp + @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index db1d3622a9..6b640e9861 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -1364,6 +1364,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/motif/statbox.cpp src/motif/stattext.cpp src/motif/textctrl.cpp + src/motif/textentry.cpp src/motif/timer.cpp src/motif/toolbar.cpp src/motif/toplevel.cpp @@ -1371,7 +1372,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/motif/window.cpp src/motif/xmcombo/xmcombo.c - src/generic/animateg.cpp src/generic/clrpickerg.cpp src/generic/collpaneg.cpp src/generic/colrdlgg.cpp @@ -1388,7 +1388,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/generic/tabg.cpp - wx/generic/animate.h wx/generic/clrpickerg.h wx/generic/collpaneg.h wx/generic/colrdlgg.h @@ -1453,6 +1452,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/motif/statbox.h wx/motif/stattext.h wx/motif/textctrl.h + wx/motif/textentry.h wx/motif/tglbtn.h wx/motif/toolbar.h wx/motif/toplevel.h @@ -2911,6 +2911,14 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/unix/taskbarx11.h + + src/generic/animateg.cpp + + + + wx/generic/animate.h + + src/gtk/aboutdlg.cpp src/gtk/animate.cpp @@ -3482,7 +3490,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! $(ADVANCED_MSW_SRC) $(ADVANCED_MAC_SRC) $(ADVANCED_COCOA_SRC) - $(ADVANCED_UNIX_SRC) + $(ADVANCED_UNIX_SRC) $(ADVANCED_MOTIF_SRC) $(ADVANCED_UNIX_SRC) $(ADVANCED_GTK_SRC) $(ADVANCED_UNIX_SRC) $(ADVANCED_GTK1_SRC) $(ADVANCED_UNIX_SRC) @@ -3494,7 +3502,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! $(ADVANCED_MSW_HDR) $(ADVANCED_MAC_HDR) $(ADVANCED_COCOA_HDR) - $(ADVANCED_UNIX_HDR) + $(ADVANCED_UNIX_HDR) $(ADVANCED_MOTIF_HDR) $(ADVANCED_UNIX_HDR) $(ADVANCED_GTK_HDR) $(ADVANCED_UNIX_HDR) $(ADVANCED_GTK1_HDR) $(ADVANCED_UNIX_HDR) diff --git a/include/wx/motif/combobox.h b/include/wx/motif/combobox.h index d63326ba22..8b3e8b9e45 100644 --- a/include/wx/motif/combobox.h +++ b/include/wx/motif/combobox.h @@ -13,12 +13,12 @@ #define _WX_COMBOBOX_H_ #include "wx/choice.h" +#include "wx/textentry.h" // Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice +class WXDLLEXPORT wxComboBox : public wxChoice, + public wxTextEntry { - DECLARE_DYNAMIC_CLASS(wxComboBox) - public: wxComboBox() { m_inSetSelection = false; } virtual ~wxComboBox(); @@ -69,35 +69,31 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxComboBoxNameStr); + // resolve ambiguities among virtual functions inherited from both base + // classes + virtual void Clear(); + virtual wxString GetValue() const { return wxTextEntry::GetValue(); } + virtual void SetValue(const wxString& value); + virtual wxString GetStringSelection() const + { return wxChoice::GetStringSelection(); } + + virtual void SetSelection(long from, long to) + { wxTextEntry::SetSelection(from, to); } + virtual void GetSelection(long *from, long *to) const + { wxTextEntry::GetSelection(from, to); } + + // implementation of wxControlWithItems virtual int DoInsertItems(const wxArrayStringsAdapter& items, unsigned int pos, void **clientData, wxClientDataType type); virtual void DoDeleteOneItem(unsigned int n); - virtual void DoClear(); virtual int GetSelection() const ; virtual void SetSelection(int n); virtual int FindString(const wxString& s, bool bCase = false) const; virtual wxString GetString(unsigned int n) const ; virtual void SetString(unsigned int n, const wxString& s); - // Text field functions - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual wxTextPos GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - // Implementation virtual void ChangeFont(bool keepOriginalSize = true); virtual void ChangeBackgroundColour(); @@ -105,11 +101,14 @@ public: WXWidget GetTopWidget() const { return m_mainWidget; } WXWidget GetMainWidget() const { return m_mainWidget; } - virtual wxSize DoGetBestSize() const; protected: + virtual wxSize DoGetBestSize() const; virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); + int width, int height, + int sizeFlags = wxSIZE_AUTO); + + virtual WXWidget GetTextWidget() const; + private: // only implemented for native combo box void AdjustDropDownListSize(); @@ -117,7 +116,8 @@ private: // implementation detail, should really be private public: bool m_inSetSelection; + + DECLARE_DYNAMIC_CLASS(wxComboBox) }; -#endif -// _WX_COMBOBOX_H_ +#endif // _WX_COMBOBOX_H_ diff --git a/include/wx/motif/textctrl.h b/include/wx/motif/textctrl.h index 22b8f50eeb..2eed64a576 100644 --- a/include/wx/motif/textctrl.h +++ b/include/wx/motif/textctrl.h @@ -15,30 +15,29 @@ // Single-line text item class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase { - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - public: // creation // -------- + wxTextCtrl(); wxTextCtrl(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 = wxTextCtrlNameStr) + wxWindowID id, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxTextCtrlNameStr) { Create(parent, id, value, pos, size, style, validator, name); } 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 = wxTextCtrlNameStr); + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxTextCtrlNameStr); // accessors // --------- @@ -51,36 +50,6 @@ public: // operations // ---------- - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual wxTextPos GetLastPosition() const; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); virtual void MarkDirty(); virtual void DiscardEdits(); virtual bool IsModified() const; @@ -88,7 +57,6 @@ public: virtual long XYToPosition(long x, long y) const; virtual bool PositionToXY(long pos, long *x, long *y) const; virtual void ShowPosition(long pos); - virtual void Clear(); // callbacks // --------- @@ -120,15 +88,15 @@ public: // send the CHAR and TEXT_UPDATED events void DoSendEvents(void /* XmTextVerifyCallbackStruct */ *cbs, - long keycode); + long keycode); protected: - wxString m_fileName; - virtual wxSize DoGetBestSize() const; virtual void DoSetValue(const wxString& value, int flags = 0); + virtual WXWidget GetTextWidget() const { return m_mainWidget; } + public: // Motif-specific void* m_tempCallbackStruct; @@ -140,6 +108,7 @@ public: private: DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxTextCtrl) }; #endif diff --git a/include/wx/motif/textentry.h b/include/wx/motif/textentry.h new file mode 100644 index 0000000000..5761116e0a --- /dev/null +++ b/include/wx/motif/textentry.h @@ -0,0 +1,59 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/motif/textentry.h +// Purpose: wxMotif-specific wxTextEntry implementation +// Author: Vadim Zeitlin +// Created: 2007-11-05 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_MOTIF_TEXTENTRY_H_ +#define _WX_MOTIF_TEXTENTRY_H_ + +// ---------------------------------------------------------------------------- +// wxTextEntry wraps XmTextXXX() methods suitable for single-line controls +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase +{ +public: + wxTextEntry() { } + + // implement wxTextEntryBase pure virtual methods + virtual void WriteText(const wxString& text); + virtual wxString GetValue() const; + virtual void Replace(long from, long to, const wxString& value); + virtual void Remove(long from, long to); + + virtual void Copy(); + virtual void Cut(); + virtual void Paste(); + + virtual void Undo(); + virtual void Redo(); + virtual bool CanUndo() const; + virtual bool CanRedo() const; + + virtual void SetInsertionPoint(long pos); + virtual long GetInsertionPoint() const; + virtual long GetLastPosition() const; + + virtual void SetSelection(long from, long to); + virtual void GetSelection(long *from, long *to) const; + + virtual bool IsEditable() const; + virtual void SetEditable(bool editable); + +protected: + // translate wx text position (which may be -1 meaning "last one") to a + // valid Motif text position + long GetMotifPos(long pos) const; + +private: + // implement this to return the associated xmTextWidgetClass widget + virtual WXWidget GetTextWidget() const = 0; +}; + +#endif // _WX_MOTIF_TEXTENTRY_H_ + diff --git a/include/wx/textentry.h b/include/wx/textentry.h index 0aa350ef9d..415eb8b188 100644 --- a/include/wx/textentry.h +++ b/include/wx/textentry.h @@ -96,7 +96,7 @@ public: bool HasSelection() const; virtual wxString GetStringSelection() const; - + // auto-completion // --------------- @@ -207,6 +207,8 @@ private: #include "wx/gtk/textentry.h" #elif defined(__WXMSW__) #include "wx/msw/textentry.h" +#elif defined(__WXMOTIF__) + #include "wx/motif/textentry.h" #else // no platform-specific implementation of wxTextEntry yet class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase diff --git a/src/common/valtext.cpp b/src/common/valtext.cpp index 202e8195fa..8d83f839fd 100644 --- a/src/common/valtext.cpp +++ b/src/common/valtext.cpp @@ -85,15 +85,12 @@ wxTextEntry *wxTextValidator::GetTextEntry() } #endif - // FIXME: in wxMotif wxComboBox doesn't derive from wxTextCtrl yet -#ifndef __WXMOTIF__ #if wxUSE_COMBOBOX if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox))) { return (wxComboBox*)m_validatorWindow; } #endif -#endif // !__WXMOTIF__ wxFAIL_MSG( _T("wxTextValidator can only be used with wxTextCtrl or wxComboBox") diff --git a/src/motif/combobox.cpp b/src/motif/combobox.cpp index 4083a88ebd..099cc58604 100644 --- a/src/motif/combobox.cpp +++ b/src/motif/combobox.cpp @@ -236,68 +236,6 @@ int wxComboBox::FindString(const wxString& s, bool WXUNUSED(bCase)) const return wxNOT_FOUND; } -// Clipboard operations -void wxComboBox::Copy() -{ - XmComboBoxCopy((Widget) m_mainWidget, CurrentTime); -} - -void wxComboBox::Cut() -{ - XmComboBoxCut((Widget) m_mainWidget, CurrentTime); -} - -void wxComboBox::Paste() -{ - XmComboBoxPaste((Widget) m_mainWidget); -} - -void wxComboBox::SetEditable(bool WXUNUSED(editable)) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - XmComboBoxSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) pos); -} - -void wxComboBox::SetInsertionPointEnd() -{ - XmTextPosition pos = XmComboBoxGetLastPosition ((Widget) m_mainWidget); - XmComboBoxSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) (pos + 1)); -} - -long wxComboBox::GetInsertionPoint() const -{ - return (long) XmComboBoxGetInsertionPosition ((Widget) m_mainWidget); -} - -wxTextPos wxComboBox::GetLastPosition() const -{ - return (wxTextPos) XmComboBoxGetLastPosition ((Widget) m_mainWidget); -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - XmComboBoxReplace ((Widget) m_mainWidget, (XmTextPosition) from, - (XmTextPosition) to, - value.char_str()); -} - -void wxComboBox::Remove(long from, long to) -{ - XmComboBoxSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); - XmComboBoxRemove ((Widget) m_mainWidget); -} - -void wxComboBox::SetSelection(long from, long to) -{ - XmComboBoxSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); -} - void wxComboBoxCallback (Widget WXUNUSED(w), XtPointer clientData, XmComboBoxSelectionCallbackStruct * cbs) { @@ -366,6 +304,11 @@ wxSize wxComboBox::DoGetBestSize() const return wxWindow::DoGetBestSize(); } +WXWidget wxComboBox::GetTextWidget() const +{ + return (WXWidget)XmComboBoxGetEditWidget((Widget) m_mainWidget); +} + #endif // XmVersion < 2000 #endif // wxUSE_COMBOBOX diff --git a/src/motif/combobox_native.cpp b/src/motif/combobox_native.cpp index 4bb234346a..1cadd49e94 100644 --- a/src/motif/combobox_native.cpp +++ b/src/motif/combobox_native.cpp @@ -226,7 +226,7 @@ void wxComboBox::DoDeleteOneItem(unsigned int n) AdjustDropDownListSize(); } -void wxComboBox::DoClear() +void wxComboBox::Clear() { #ifdef LESSTIF_VERSION XmListDeleteAllItems (GetXmList(this)); @@ -237,9 +237,10 @@ void wxComboBox::DoClear() } #endif - wxControlWithItems::DoClear(); m_noStrings = 0; AdjustDropDownListSize(); + + wxTextEntry::Clear(); } void wxComboBox::SetSelection (int n) @@ -262,7 +263,7 @@ void wxComboBox::SetSelection (int n) m_inSetSelection = false; } -int wxComboBox::GetSelection (void) const +int wxComboBox::GetSelection() const { return wxDoGetSelectionInList( GetXmList( this ) ); } @@ -279,11 +280,6 @@ int wxComboBox::FindString(const wxString& s, bool WXUNUSED(bCase)) const return wxDoFindStringInList( GetXmList( this ), s ); } -void wxComboBox::SetEditable(bool WXUNUSED(editable)) -{ - // TODO -} - void wxComboBoxCallback (Widget WXUNUSED(w), XtPointer clientData, XmComboBoxCallbackStruct * cbs) { diff --git a/src/motif/textentry.cpp b/src/motif/textentry.cpp new file mode 100644 index 0000000000..9ba70b8df3 --- /dev/null +++ b/src/motif/textentry.cpp @@ -0,0 +1,200 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/motif/textentry.cpp +// Purpose: implementation of wxTextEntry for wxMotif +// Author: Vadim Zeitlin +// Created: 2007-11-05 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/string.h" +#endif //WX_PRECOMP + +#include "wx/textentry.h" + +#ifdef __VMS__ +#pragma message disable nosimpint +#endif +#include +#ifdef __VMS__ +#pragma message enable nosimpint +#endif + +// return the text widget casted to the correct type +#define GetText() ((Widget)this->GetTextWidget()) + +// ============================================================================ +// wxTextEntry implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// helpers +// ---------------------------------------------------------------------------- + +long wxTextEntry::GetMotifPos(long pos) const +{ + // in wx API position -1 means "last one" but for Motif position must be + // positive, i.e. it doesn't have this convention, so translate + return pos == -1 ? GetLastPosition() : pos; +} + +// ---------------------------------------------------------------------------- +// operations on control text +// ---------------------------------------------------------------------------- + +wxString wxTextEntry::GetValue() const +{ + wxString str; + + char * const s = XmTextGetString(GetText()); + if ( s ) + { + str = s; + XtFree(s); + } + + return str; +} + +void wxTextEntry::WriteText(const wxString& text) +{ + long pos = GetInsertionPoint(); + + XmTextInsert(GetText(), pos, text.char_str()); + + pos += text.length(); + + XtVaSetValues(GetText(), XmNcursorPosition, pos, NULL); + SetInsertionPoint(pos); + XmTextShowPosition(GetText(), pos); +} + +void wxTextEntry::Replace(long from, long to, const wxString& value) +{ + XmTextReplace(GetText(), from, GetMotifPos(to), value.char_str()); +} + +void wxTextEntry::Remove(long from, long to) +{ + SetSelection(from, to); + XmTextRemove(GetText()); +} + +// ---------------------------------------------------------------------------- +// clipboard operations +// ---------------------------------------------------------------------------- + +void wxTextEntry::Copy() +{ + XmTextCopy(GetText(), CurrentTime); +} + +void wxTextEntry::Cut() +{ + XmTextCut(GetText(), CurrentTime); +} + +void wxTextEntry::Paste() +{ + XmTextPaste(GetText()); +} + +// ---------------------------------------------------------------------------- +// undo/redo (not implemented) +// ---------------------------------------------------------------------------- + +void wxTextEntry::Undo() +{ +} + +void wxTextEntry::Redo() +{ +} + +bool wxTextEntry::CanUndo() const +{ + return false; +} + +bool wxTextEntry::CanRedo() const +{ + return false; +} + +// ---------------------------------------------------------------------------- +// insertion point +// ---------------------------------------------------------------------------- + +void wxTextEntry::SetInsertionPoint(long pos) +{ + XmTextSetInsertionPosition(GetText(), GetMotifPos(pos)); +} + +long wxTextEntry::GetInsertionPoint() const +{ + return XmTextGetInsertionPosition(GetText()); +} + +wxTextPos wxTextEntry::GetLastPosition() const +{ + return XmTextGetLastPosition(GetText()); +} + +// ---------------------------------------------------------------------------- +// selection +// ---------------------------------------------------------------------------- + +void wxTextEntry::GetSelection(long* from, long* to) const +{ + XmTextPosition left, right; + if ( !XmTextGetSelectionPosition(GetText(), &left, &right) ) + { + // no selection, for compatibility with wxMSW return empty range at + // cursor position + left = + right = GetInsertionPoint(); + } + + if ( from ) + *from = left; + if ( to ) + *to = right; +} + +void wxTextEntry::SetSelection(long from, long to) +{ + XmTextSetSelection(GetText(), from, GetMotifPos(to), CurrentTime); +} + + +// ---------------------------------------------------------------------------- +// editable state +// ---------------------------------------------------------------------------- + +bool wxTextEntry::IsEditable() const +{ + return XmTextGetEditable(GetText()) != 0; +} + +void wxTextEntry::SetEditable(bool editable) +{ + XmTextSetEditable(GetText(), (Boolean) editable); +} +