///////////////////////////////////////////////////////////////////////////////
// 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_
 
#include "wx/defs.h"
#include "wx/arrstr.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_
 

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: m_index.