Logo Search packages:      
Sourcecode: codeblocks version File versions  Download package

InsertIndexManager.h

/***************************************************************
 * Name:      InsertIndexManager
 * Purpose:   InsertIndexManager is used to get the insertion
 *            index of a path in a list. It is used by the
 *            ThreadSearchLoggerBase derived classes.
 *            File paths are sorted case insensitively either
 *            by file path or file name.
 * Author:    Jerome ANTOINE
 * Created:   2008-01-06
 * Copyright: Jerome ANTOINE
 * License:   GPL
 **************************************************************/

#ifndef INSERT_INDEX_MANAGER_H
#define INSERT_INDEX_MANAGER_H

#include <wx/arrstr.h>

00019 class InsertIndexManager
{
public:
      enum eFileSorting
      {
            SortByFilePath = 0,    // C:\a\b.txt < C:\b\a.txt
            SortByFileName         // C:\a\b.txt > C:\b\a.txt
      };

public:
      /** Constructor. */
00030       InsertIndexManager(eFileSorting fileSorting = SortByFilePath)
                              : m_SortedStringArray()
                      , m_FileSorting(fileSorting)
      {
      }

      /** Destructor. */
00037       virtual ~InsertIndexManager() {}

      /** GetInsertionIndex
        * Return the index where the file must be inserted.
        * Index is found according to sorting strategy (m_FileSorting)
        * @param filePath        : path of the file to insert
        * @param nbItemstoInsert : number of items to insert
        * @return index of the file to insert
        */
      long GetInsertionIndex(const wxString& filePath, long nbItemstoInsert = 1);

      /** Reset : clears array of paths */
00049       void Reset() {m_SortedStringArray.Empty();}

      // Accessors
      eFileSorting GetFileSorting() const                   {return m_FileSorting;}
      void         SetFileSorting(eFileSorting fileSorting) {m_FileSorting = fileSorting;}

private:
      wxSortedArrayString m_SortedStringArray;
      eFileSorting        m_FileSorting;
};

#endif // INSERT_INDEX_MANAGER_H

Generated by  Doxygen 1.6.0   Back to index