source: tags/initial/TEST/D_classes.cxx

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
1#include <stdio.h>
2#include "d_classes.hxx"
3
4
5
6Element::Element() {
7int i;
8        contents        = 0;
9        marked          = FALSE;
10
11        first_son       = 0;
12        last_son        = 0;
13        left_brother    = 0;
14        right_brother   = 0;
15
16        width           = 50;   // currently fixed
17        height          = 20;   // currently fixed
18        width_of_sons   = 0;
19        height_of_sons  = 0;
20        number_of_sons  = 0;
21}
22
23
24Element::~Element() {
25
26}
27
28
29class Element *Element::set_contents(int v) {
30        contents = v;
31
32        return this;
33}
34
35
36class Element *Element::get_contents(int &v) {
37        v = contents;
38
39        return this;
40}
41
42
43class Element *Element::print_contents(void) {
44        printf("contents:%i\n", contents);
45
46        return this;
47}
48
49
50class Element *Element::print_contents_recursive(int depth) {
51class Element *tmp = first_son;
52
53        printf("depth:%i  ",depth);
54        this->print_contents();
55        while(tmp) {
56                tmp->print_contents_recursive(depth+1);
57                tmp = tmp->right_brother;
58        }
59
60        return this;
61}
62
63
64class Element *Element::dump(void) {
65
66        printf("DUMP:: contents: %i  width of sons: %i\n",contents,width_of_sons);
67
68        return this;
69}
70
71
72class Element *Element::dump_recursive(void) {
73class Element *tmp = first_son;
74
75        this->dump();
76
77        while(tmp) {
78                tmp->dump_recursive();
79                tmp = tmp->right_brother;
80        }
81
82        return this;
83}
84
85
86class Element *Element::calculate_sizes(void) {
87class Element *_tmp = first_son;
88int     _width = 0;
89int     _height = 0;
90
91        while(_tmp) {
92                _tmp->calculate_sizes();
93                _width += width;
94                _tmp = _tmp->right_brother;
95        }
96
97        width_of_sons = _width;
98
99        return this;
100}
101
102
103class Element *Element::add_son(void) {
104class Element *tmp;
105
106        tmp = new Element;
107
108        if(!first_son) {
109                first_son = tmp;
110                tmp->left_brother = 0;
111        }else{
112                tmp->left_brother = last_son;
113                last_son->right_brother = tmp;
114        }
115        last_son = tmp;
116        tmp->right_brother = 0;
117
118        number_of_sons++;
119
120        return tmp;
121}
122
123
124class Element *Element::get_number_of_sons(int &n) {
125        n = number_of_sons;
126
127        return this;
128}
129
130
131class Element **Element::get_sons(void) {
132        return 0; // not finished
133}
Note: See TracBrowser for help on using the repository browser.