1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6#include "nsITreeView.idl"
7
8interface nsIMsgDBHdr;
9
10    /* //TODO JavaDoc
11       When implementing a js custom column handler (of type nsITreeView) you must implement the following
12       functions:
13       1. isEditable
14       2. GetCellProperties
15       3. GetImageSrc
16       4. GetCellText
17       5. CycleCell
18       6. GetSortStringForRow
19       7. GetSortLongForRow
20       8. isString
21
22       You can, at your option, implement
23       9.  GetRowProperties.
24
25       With Bug 1192696, Grouped By Sort was implemented for custom columns.
26       Implementers should consider that the value returned by GetSortStringForRow
27       will be displayed in the grouped header row, as well as be used as the
28       sort string.
29
30      If implementing a c++ custom column handler, you must define all
31      nsITreeView and nsIMsgCustomColumnHandler methods.
32    */
33
34[scriptable, uuid(00f75b13-3ac4-4a17-a8b9-c6e4dd1b3f32)]
35interface nsIMsgCustomColumnHandler : nsITreeView
36{
37  AString getSortStringForRow(in nsIMsgDBHdr aHdr);
38  unsigned long getSortLongForRow(in nsIMsgDBHdr aHdr);
39  boolean isString();
40};
41