root/tests/testUI.cpp @ 125

Revision 122, 1.4 kB (checked in by mido, 16 years ago)

prvni verze UserInfa?<T>

  • Property svn:eol-style set to native
Line 
1#include "userinfo.h"
2
3class Engine 
4{
5public:
6        string producer;
7        double consumption;
8
9        Engine( string producer, double consumption )
10                : producer( producer ),
11                consumption( consumption )
12        {
13        }
14};
15
16//! User info for strings
17class EngineUI : public UserInfo<Engine> 
18{
19public:
20        StringAttribute producer;
21        DoubleAttribute consumption;
22       
23        EngineUI()
24                : UserInfo( "engine", "type of engine" ),
25                producer( "producer"),
26                consumption( "consumption")
27        {
28                producer.Attach( attributes );
29                consumption.Attach( attributes );
30        }
31
32        Engine* build()
33        {               
34                return new Engine( producer.value, consumption.value );
35        }
36};
37
38
39class Car
40{
41public:
42        string color;
43        int year;
44        Engine engine;
45
46        Car( string color, int year, Engine engine)
47                : color( color ),
48                year( year ),
49                engine( engine )
50        {
51        }
52};
53
54//! User info for strings
55class CarUI : public UserInfo<Car> 
56{
57public:
58        EngineUI engine;
59
60        StringAttribute color;
61        IntAttribute year;
62
63        CarUI()
64                : UserInfo("car", "type of a car"), 
65                color( "color"), 
66                year( "year" )
67        {
68                engine.Attach( elements );
69
70                color.Attach( attributes );
71                year.Attach( attributes );
72        }
73
74        Car* build()
75        {               
76                Engine* pEng = engine.build();
77                return new Car(color.value, year.value,*pEng);
78        }
79};
80
81
82int main()
83{
84        CarUI car;
85
86        car.Save( "car.xml" ); 
87
88/*
89        car.Load( "car.xml" );
90        Car *pDefaultCar = car.build();
91        cout << "our car has " << pDefaultCar->color << " color";
92        delete pDefaultCar;
93// */
94
95        getchar();
96        return 0;
97}
Note: See TracBrowser for help on using the browser.