File: FileTreeTableNode.h

package info (click to toggle)
witty 3.1.2-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 45,512 kB
  • ctags: 35,832
  • sloc: cpp: 69,469; ansic: 66,945; xml: 4,383; sh: 594; perl: 108; makefile: 106
file content (51 lines) | stat: -rw-r--r-- 1,319 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// This may look like C code, but it's really -*- C++ -*-
/*
 * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.
 *
 * See the LICENSE file for terms of use.
 */
#ifndef FILETREETABLENODE_H_
#define FILETREETABLENODE_H_

#include <Wt/WTreeTableNode>

#include <boost/filesystem/path.hpp>

/**
 * @addtogroup fileexplorer
 */
/*@{*/

/*! \brief A single node in a file tree table.
 *
 * The node manages the details about one file, and if the file is a
 * directory, populates a subtree with nodes for every directory item.
 *
 * The tree node reimplements Wt::WTreeTableNode::populate() to populate
 * a directory node only when the node is expanded. In this way, only
 * directories that are actually browsed are loaded from disk.
 */
class FileTreeTableNode : public Wt::WTreeTableNode
{
public:
  /*! \brief Construct a new node for the given file.
   */
  FileTreeTableNode(const boost::filesystem::path& path);

private:
  //! The path.
  boost::filesystem::path path_;

  //! Reimplements WTreeNode::populate to read files within a directory.
  virtual void populate();

  //! Reimplements WTreeNode::expandable
  virtual bool expandable();

  //! Create the iconpair for representing the path.
  static Wt::WIconPair *createIcon(const boost::filesystem::path& path);
};

/*@}*/

#endif // FILETREETABLENODE_H_