Class overview   Alphabetical list   Annotated list   Header Files   Member List  

This is the verbatim text of the tree.h include file.
#ifndef TreeWidget_included
#define TreeWidget_included

#include <iostream.h>
#include <qframe.h>
#include <qlist.h>
#include <qscrbar.h>
#include <qpixmap.h>
#include <qpopmenu.h>

#define TREE_PIXMAP_SIZE 16
#define TREE_NODE_HEIGHT 18

class TreeNode;
class TreeWidget;


class TreeNode
{
  public:
    TreeNode(const char *txt, QPixmap *pic=0, void *data=0);
    ~TreeNode();
    void setHighlighted(bool val) {_highlighted = val;}
    bool highlighted() {return _highlighted;}
    void setExpanded(bool val) {_expanded = val;}
    bool expanded() {return _expanded;}
    void setText(const char *txt) {_txt = txt;}
    const char *text() {return _txt;}
    void setPixmap(QPixmap *pic) {_pic = pic;}
    QPixmap *pixmap() {return _pic;}
    void setData(void *data) {_data = data;}
    void *data() {return _data;}
  private:
    void draw(QPaintDevice *dev, int xpos, int ypos);
    void setLevel(int val) {_level = val;}
    int level() {return _level;}
    QRect rect() {return _rect;}

    bool _highlighted;
    bool _expanded;
    int _level;
    QPixmap *_pic;
    QString _txt;
    void *_data;
    QRect _rect;

    friend class TreeWidget;
};

typedef QList<TreeNode> NodeList;
typedef QListIterator<TreeNode> NodeListIt;


class TreeWidget: public QFrame
{
  Q_OBJECT
  public:
    TreeWidget(QWidget *parent=0, const char *name=0);
    ~TreeWidget();
    void setCurrentNode(TreeNode *val);
    TreeNode *rootNode();
    TreeNode *currentNode();
    NodeList *nodes();
    TreeNode *addNode(const char *txt, QPixmap *pic=0, void *data=0,
                       TreeNode *parent=0);
    void addNode(TreeNode *id, TreeNode *parent=0);
    void rmNode(TreeNode *id);
    void clear();
    void setNodePopup(QPopupMenu *menu) {_nodePopup = menu;}
    void setBackPopup(QPopupMenu *menu) {_backPopup = menu;}
  public slots:
    void update();
  private slots:
    void doXBar(int val) {_offset.setX(val); update();}
    void doYBar(int val) {_offset.setY(val); update();}
  signals:
    void highlighted();
    void selected();
    void nothingSelected();
  private:
    void mousePressEvent(QMouseEvent *);
    void mouseDoubleClickEvent(QMouseEvent *);
    void paintEvent(QPaintEvent *);
    void resizeEvent(QResizeEvent *);
    void draw();
  private:
    QScrollBar *_xBar;
    QScrollBar *_yBar;
    TreeNode *_rootNode;
    TreeNode *_currNode;
    QList<TreeNode> _nodeList;
    QPixmap *_canvas;
    QPoint _offset;
    QPopupMenu *_nodePopup;
    QPopupMenu *_backPopup;
};

#endif

Generated at 14:38, 1998/04/17 for Ebuilder by doxygen  written by Dimitri van Heesch, © 1997-1998