From 574479e8db6ac77d1f94183cddecd688e012504c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 16 Apr 2011 17:27:04 +0000 Subject: [PATCH] Refactor wxTextEntry::AutoComplete() to simply call DoAutoCompleteXXX(). No real changes, just make the public AutoComplete() non-virtual and add virtual DoAutoCompleteXXX() methods to make it easier to add new public AutoComplete() overloads in the upcoming commits. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/textentry.h | 4 ++-- include/wx/msw/textentry.h | 14 +++++++------- include/wx/textentry.h | 17 ++++++++++++----- interface/wx/textentry.h | 4 ++-- src/gtk/textentry.cpp | 2 +- src/msw/textentry.cpp | 4 ++-- 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/include/wx/gtk/textentry.h b/include/wx/gtk/textentry.h index 0af6c9a652..cc69686650 100644 --- a/include/wx/gtk/textentry.h +++ b/include/wx/gtk/textentry.h @@ -43,8 +43,6 @@ public: virtual void SetSelection(long from, long to); virtual void GetSelection(long *from, long *to) const; - virtual bool AutoComplete(const wxArrayString& choices); - virtual bool IsEditable() const; virtual void SetEditable(bool editable); @@ -60,6 +58,8 @@ protected: virtual bool DoSetMargins(const wxPoint& pt); virtual wxPoint DoGetMargins() const; + virtual bool DoAutoCompleteStrings(const wxArrayString& choices); + private: // implement this to return the associated GtkEntry or another widget // implementing GtkEditable diff --git a/include/wx/msw/textentry.h b/include/wx/msw/textentry.h index ade77243f2..aa23df118c 100644 --- a/include/wx/msw/textentry.h +++ b/include/wx/msw/textentry.h @@ -46,13 +46,6 @@ public: { DoSetSelection(from, to); } virtual void GetSelection(long *from, long *to) const; - // auto-completion uses COM under Windows so they won't work without - // wxUSE_OLE as OleInitialize() is not called then -#if wxUSE_OLE - virtual bool AutoComplete(const wxArrayString& choices); - virtual bool AutoCompleteFileNames(); -#endif // wxUSE_OLE - virtual bool IsEditable() const; virtual void SetEditable(bool editable); @@ -80,6 +73,13 @@ protected: virtual bool DoSetMargins(const wxPoint& pt); virtual wxPoint DoGetMargins() const; + // auto-completion uses COM under Windows so they won't work without + // wxUSE_OLE as OleInitialize() is not called then +#if wxUSE_OLE + virtual bool DoAutoCompleteStrings(const wxArrayString& choices); + virtual bool DoAutoCompleteFileNames(); +#endif // wxUSE_OLE + private: // implement this to return the HWND of the EDIT control virtual WXHWND GetEditHWND() const = 0; diff --git a/include/wx/textentry.h b/include/wx/textentry.h index 3fadbd0322..f728289251 100644 --- a/include/wx/textentry.h +++ b/include/wx/textentry.h @@ -112,12 +112,11 @@ public: // commonly meaning that this functionality is not available under the // current platform) - virtual bool AutoComplete(const wxArrayString& WXUNUSED(choices)) - { - return false; - } + bool AutoComplete(const wxArrayString& choices) + { return DoAutoCompleteStrings(choices); } - virtual bool AutoCompleteFileNames() { return false; } + bool AutoCompleteFileNames() + { return DoAutoCompleteFileNames(); } // status @@ -218,6 +217,14 @@ protected: virtual bool DoSetMargins(const wxPoint& pt); virtual wxPoint DoGetMargins() const; + // the derived classes should override these virtual methods to implement + // auto-completion, they do the same thing as their public counterparts but + // have different names to allow overriding just one of them without hiding + // the other one(s) + virtual bool DoAutoCompleteStrings(const wxArrayString& WXUNUSED(choices)) + { return false; } + virtual bool DoAutoCompleteFileNames() { return false; } + // class which should be used to temporarily disable text change events // diff --git a/interface/wx/textentry.h b/interface/wx/textentry.h index 74d7a88dc8..f29cc17239 100644 --- a/interface/wx/textentry.h +++ b/interface/wx/textentry.h @@ -58,7 +58,7 @@ public: @see AutoCompleteFileNames() */ - virtual bool AutoComplete(const wxArrayString& choices); + bool AutoComplete(const wxArrayString& choices); /** Call this function to enable auto-completion of the text typed in a @@ -76,7 +76,7 @@ public: @see AutoComplete() */ - virtual bool AutoCompleteFileNames(); + bool AutoCompleteFileNames(); /** Returns @true if the selection can be copied to the clipboard. diff --git a/src/gtk/textentry.cpp b/src/gtk/textentry.cpp index 60ddcda95f..ef3a08bd27 100644 --- a/src/gtk/textentry.cpp +++ b/src/gtk/textentry.cpp @@ -237,7 +237,7 @@ void wxTextEntry::GetSelection(long *from, long *to) const // auto completion // ---------------------------------------------------------------------------- -bool wxTextEntry::AutoComplete(const wxArrayString& choices) +bool wxTextEntry::DoAutoCompleteStrings(const wxArrayString& choices) { GtkEntry * const entry = GTK_ENTRY(GetEditable()); wxCHECK_MSG(entry, false, "auto completion doesn't work with this control"); diff --git a/src/msw/textentry.cpp b/src/msw/textentry.cpp index b52704883d..654a82007b 100644 --- a/src/msw/textentry.cpp +++ b/src/msw/textentry.cpp @@ -303,7 +303,7 @@ void wxTextEntry::GetSelection(long *from, long *to) const // ---------------------------------------------------------------------------- #if wxUSE_OLE -bool wxTextEntry::AutoCompleteFileNames() +bool wxTextEntry::DoAutoCompleteFileNames() { #ifdef HAS_AUTOCOMPLETE typedef HRESULT (WINAPI *SHAutoComplete_t)(HWND, DWORD); @@ -337,7 +337,7 @@ bool wxTextEntry::AutoCompleteFileNames() #endif // HAS_AUTOCOMPLETE/!HAS_AUTOCOMPLETE } -bool wxTextEntry::AutoComplete(const wxArrayString& choices) +bool wxTextEntry::DoAutoCompleteStrings(const wxArrayString& choices) { #ifdef HAS_AUTOCOMPLETE // if we had an old enumerator we must reuse it as IAutoComplete doesn't -- 2.47.2