/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsITreeView.idl"

interface nsIMsgDBHdr;

    /* //TODO JavaDoc
       When implementing a js custom column handler (of type nsITreeView) you must implement the following
       functions:
       1. isEditable
       2. GetCellProperties
       3. GetImageSrc
       4. GetCellText
       5. CycleCell
       6. GetSortStringForRow
       7. GetSortLongForRow
       8. isString
       
       You can, at your option, implement 
       9.  GetRowProperties.

      If implementing a c++ custom column handler, you must define all 
      nsITreeView and nsIMsgCustomColumnHandler methods.
    */


[scriptable, uuid(00f75b13-3ac4-4a17-a8b9-c6e4dd1b3f32)]
interface nsIMsgCustomColumnHandler : nsITreeView
{
  AString getSortStringForRow(in nsIMsgDBHdr aHdr);
  unsigned long getSortLongForRow(in nsIMsgDBHdr aHdr);
  boolean isString();
}; 

