Revision 128, 1.4 kB
(checked in by smidl, 16 years ago)
|
|
-
Property svn:eol-style set to
native
|
Rev | Line | |
---|
[82] | 1 | #include "userinfo.h" |
---|
| 2 | |
---|
[122] | 3 | class Engine |
---|
| 4 | { |
---|
| 5 | public: |
---|
| 6 | string producer; |
---|
| 7 | double consumption; |
---|
[82] | 8 | |
---|
[122] | 9 | Engine( string producer, double consumption ) |
---|
| 10 | : producer( producer ), |
---|
| 11 | consumption( consumption ) |
---|
| 12 | { |
---|
| 13 | } |
---|
| 14 | }; |
---|
| 15 | |
---|
| 16 | //! User info for strings |
---|
| 17 | class EngineUI : public UserInfo<Engine> |
---|
| 18 | { |
---|
| 19 | public: |
---|
| 20 | StringAttribute producer; |
---|
| 21 | DoubleAttribute consumption; |
---|
| 22 | |
---|
| 23 | EngineUI() |
---|
[128] | 24 | : UserInfo<Engine>( "engine", "type of engine" ), |
---|
[122] | 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 | |
---|
| 39 | class Car |
---|
| 40 | { |
---|
| 41 | public: |
---|
| 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 |
---|
| 55 | class CarUI : public UserInfo<Car> |
---|
| 56 | { |
---|
| 57 | public: |
---|
| 58 | EngineUI engine; |
---|
| 59 | |
---|
| 60 | StringAttribute color; |
---|
| 61 | IntAttribute year; |
---|
| 62 | |
---|
| 63 | CarUI() |
---|
[128] | 64 | : UserInfo<Car>("car", "type of a car"), |
---|
[122] | 65 | color( "color"), |
---|
[128] | 66 | year( "color" ) |
---|
[122] | 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 | |
---|
[82] | 82 | int main() |
---|
| 83 | { |
---|
[122] | 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(); |
---|
[82] | 96 | return 0; |
---|
[122] | 97 | } |
---|