87 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/textcompleter.h
 | 
						|
// Purpose:     Declaration of wxTextCompleter class.
 | 
						|
// Author:      Vadim Zeitlin
 | 
						|
// Created:     2011-04-13
 | 
						|
// Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 | 
						|
// Licence:     wxWindows licence
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_TEXTCOMPLETER_H_
 | 
						|
#define _WX_TEXTCOMPLETER_H_
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxTextCompleter: used by wxTextEnter::AutoComplete()
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
class WXDLLIMPEXP_CORE wxTextCompleter
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxTextCompleter() { }
 | 
						|
 | 
						|
    // The virtual functions to be implemented by the derived classes: the
 | 
						|
    // first one is called to start preparing for completions for the given
 | 
						|
    // prefix and, if it returns true, GetNext() is called until it returns an
 | 
						|
    // empty string indicating that there are no more completions.
 | 
						|
    virtual bool Start(const wxString& prefix) = 0;
 | 
						|
    virtual wxString GetNext() = 0;
 | 
						|
 | 
						|
    virtual ~wxTextCompleter();
 | 
						|
 | 
						|
private:
 | 
						|
    wxDECLARE_NO_COPY_CLASS(wxTextCompleter);
 | 
						|
};
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxTextCompleterSimple: returns the entire set of completions at once
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
class WXDLLIMPEXP_CORE wxTextCompleterSimple : public wxTextCompleter
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxTextCompleterSimple() { }
 | 
						|
 | 
						|
    // Must be implemented to return all the completions for the given prefix.
 | 
						|
    virtual void GetCompletions(const wxString& prefix, wxArrayString& res) = 0;
 | 
						|
 | 
						|
    virtual bool Start(const wxString& prefix) wxOVERRIDE;
 | 
						|
    virtual wxString GetNext() wxOVERRIDE;
 | 
						|
 | 
						|
private:
 | 
						|
    wxArrayString m_completions;
 | 
						|
    unsigned m_index;
 | 
						|
 | 
						|
    wxDECLARE_NO_COPY_CLASS(wxTextCompleterSimple);
 | 
						|
};
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxTextCompleterFixed: Trivial wxTextCompleter implementation which always
 | 
						|
// returns the same fixed array of completions.
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
// NB: This class is private and intentionally not documented as it is
 | 
						|
//     currently used only for implementation of completion with the fixed list
 | 
						|
//     of strings only by wxWidgets itself, do not use it outside of wxWidgets.
 | 
						|
 | 
						|
class wxTextCompleterFixed : public wxTextCompleterSimple
 | 
						|
{
 | 
						|
public:
 | 
						|
    void SetCompletions(const wxArrayString& strings)
 | 
						|
    {
 | 
						|
        m_strings = strings;
 | 
						|
    }
 | 
						|
 | 
						|
    virtual void GetCompletions(const wxString& WXUNUSED(prefix),
 | 
						|
                                wxArrayString& res) wxOVERRIDE
 | 
						|
    {
 | 
						|
        res = m_strings;
 | 
						|
    }
 | 
						|
 | 
						|
private:
 | 
						|
    wxArrayString m_strings;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif // _WX_TEXTCOMPLETER_H_
 | 
						|
 |