/**********************************************************************************
 * $Header: /private/postgres/src/lib/H/tmp/RCS/TreeP.h,v 1.2 1991/02/02 15:13:06 sp Exp $
 * TreeP.h: Private header file for the Tree widget
  *         From:
  *                   The X Window System, 
  *            Programming and Applications with Xt
  *                   OSF/Motif Edition
  *         by
  *                Douglas Young
  *              Prentice Hall, 1990
  *
  *                 Example described on pages: 397-419
  *
  *
  *  Copyright 1989 by Prentice Hall
  *  All Rights Reserved
  *
  * This code is based on the OSF/Motif widget set and the X Window System
  *
  * Permission to use, copy, modify, and distribute this software for 
  * any purpose and without fee is hereby granted, provided that the above
  * copyright notice appear in all copies and that both the copyright notice
  * and this permission notice appear in supporting documentation.
  *
  * Prentice Hall and the author disclaim all warranties with regard to 
  * this software, including all implied warranties of merchantability and fitness.
  * In no event shall Prentice Hall or the author be liable for any special,
  * indirect or cosequential damages or any damages whatsoever resulting from 
  * loss of use, data or profits, whether in an action of contract, negligence 
  * or other tortious action, arising out of or in connection with the use 
  * or performance of this software.
  *
  * Open Software Foundation is a trademark of The Open Software Foundation, Inc.
  * OSF is a trademark of Open Software Foundation, Inc.
  * OSF/Motif is a trademark of Open Software Foundation, Inc.
  * Motif is a trademark of Open Software Foundation, Inc.
  * DEC is a registered trademark of Digital Equipment Corporation
  * HP is a registered trademark of the Hewlett Packard Company
  * DIGITAL is a registered trademark of Digital Equipment Corporation
  * X Window System is a trademark of the Massachusetts Institute of Technology
  **********************************************************************************/


#ifndef TREEP_H
#define TREEP_H
typedef struct _XsTreeClassPart {
    int         ignore;
} XsTreeClassPart;

typedef struct _XsTreeClassRec {
    CoreClassPart       core_class;
    CompositeClassPart  composite_class;
    ConstraintClassPart constraint_class;
    XsTreeClassPart     tree_class;
} XsTreeClassRec;

extern XsTreeClassRec XstreeClassRec;

typedef struct {
    Dimension  *array;
    int         size;
  }  TreeOffset, *TreeOffsetPtr;

typedef struct {
    Dimension      h_min_space;
    Dimension      v_min_space;
    Pixel          foreground;
    GC             gc;
    TreeOffsetPtr  horizontal;
    TreeOffsetPtr  vertical;
    Widget         tree_root;
} XsTreePart;


typedef struct _XsTreeRec {
    CorePart        core;
    CompositePart   composite;
    ConstraintPart  constraint;
    XsTreePart      tree;
}  XsTreeRec;



typedef struct _TreeConstraintsPart {
  Widget        super_node;
  WidgetList    sub_nodes;
  long          n_sub_nodes;
  long          max_sub_nodes;
  Position      x, y;
} TreeConstraintsPart;

typedef struct _TreeConstraintsRec {
   TreeConstraintsPart tree;
} TreeConstraintsRec, *TreeConstraints;


#define TREE_CONSTRAINT(w) \
                   ((TreeConstraints)((w)->core.constraints))

#endif TREEP_H



