From 1b2bf174e885bd554549b520dfbb0761a5a4c6b2 Mon Sep 17 00:00:00 2001 From: Christian Ohlsson Date: Thu, 5 Mar 2026 13:16:26 +0100 Subject: [PATCH] first commit --- Lab1/array.h | 106 + Lab1/lab_one | Bin 0 -> 19423 bytes Lab1/matrix.cpp | 16 + Lab1/matrix.h | 111 + Lab1/read_me | 12 + Lab2/array.h | 130 + Lab2/contract.h | 26 + Lab2/lab_two | Bin 0 -> 20273 bytes Lab2/matrix.cpp | 16 + Lab2/matrix.h | 110 + Lab2/read_me | 13 + Lab3/atm.h | 15 + Lab3/bank.cpp | 14 + Lab3/bank.h | 16 + Lab3/cashcard.h | 19 + Lab3/main.cpp | 17 + Lab3/name.cpp | 49 + Lab3/name.h | 14 + Lab3/passport.h | 14 + Lab3/person.h | 54 + Lab3/police.cpp | 11 + Lab3/police.h | 14 + Lab3/read_me | 13 + Lab4/RoseModel.mdl | 7079 +++++++++++++++++++++++++++++++ Lab4/circle.cpp | 106 + Lab4/circle.h | 108 + Lab4/cmplxfgr.cpp | 87 + Lab4/cmplxfgr.h | 100 + Lab4/fgrhlder.cpp | 61 + Lab4/fgrhlder.h | 94 + Lab4/figure.cpp | 68 + Lab4/figure.h | 103 + Lab4/flist.cpp | 30 + Lab4/flist.h | 48 + Lab4/graphic/dbggrphc.cpp | 71 + Lab4/graphic/dbggrphc.h | 89 + Lab4/graphic/graphics.cpp | 82 + Lab4/graphic/graphics.h | 95 + Lab4/line.cpp | 120 + Lab4/line.h | 101 + Lab4/list.cpp | 136 + Lab4/list.h | 111 + Lab4/main.cpp | 61 + Lab4/node.cpp | 66 + Lab4/node.h | 97 + Lab4/plist.cpp | 30 + Lab4/plist.h | 48 + Lab4/point.cpp | 83 + Lab4/point.h | 101 + Lab4/rectngle.cpp | 107 + Lab4/rectngle.h | 106 + Lab4/rose.dsp | 196 + Lab4/rose.dsw | 29 + Lab5/array.h | 118 + Lab5/except.h | 44 + Lab5/lab5.dsp | 112 + Lab5/lab5.dsw | 29 + Lab5/matrix.cpp | 24 + Lab5/matrix.h | 120 + Lab6/RoseModel.mdl | 7910 +++++++++++++++++++++++++++++++++++ Lab6/circle.cpp | 105 + Lab6/circle.h | 116 + Lab6/cmplxfgr.cpp | 87 + Lab6/cmplxfgr.h | 100 + Lab6/dbggrphc.cpp | 71 + Lab6/dbggrphc.h | 89 + Lab6/fgrhlder.cpp | 61 + Lab6/fgrhlder.h | 94 + Lab6/figure.cpp | 68 + Lab6/figure.h | 103 + Lab6/flist.cpp | 30 + Lab6/flist.h | 48 + Lab6/fstream.cpp | 51 + Lab6/fstream.h | 75 + Lab6/graphics.cpp | 82 + Lab6/graphics.h | 95 + Lab6/h.cpp | 15 + Lab6/instmap.cpp | 30 + Lab6/instmap.h | 49 + Lab6/lab6.dsp | 272 ++ Lab6/lab6.dsw | 29 + Lab6/line.cpp | 120 + Lab6/line.h | 102 + Lab6/list.cpp | 136 + Lab6/list.h | 111 + Lab6/main.cpp | 89 + Lab6/mapfake.cpp | 48 + Lab6/mapfake.h | 32 + Lab6/node.cpp | 66 + Lab6/node.h | 95 + Lab6/pcircle.cpp | 102 + Lab6/pcircle.h | 106 + Lab6/persfig.cpp | 51 + Lab6/persfig.h | 80 + Lab6/pline.cpp | 59 + Lab6/pline.h | 85 + Lab6/plist.cpp | 30 + Lab6/plist.h | 48 + Lab6/point.cpp | 83 + Lab6/point.h | 101 + Lab6/prctngle.cpp | 96 + Lab6/prctngle.h | 104 + Lab6/prsstent.cpp | 80 + Lab6/prsstent.h | 116 + Lab6/psmap.cpp | 30 + Lab6/psmap.h | 45 + Lab6/pstream.cpp | 184 + Lab6/pstream.h | 142 + Lab6/rectngle.cpp | 107 + Lab6/rectngle.h | 111 + Lab6/str.cpp | 72 + Lab6/str.h | 24 + Lab6/test.dat | 16 + Lab7/Documentation.doc | Bin 0 -> 36864 bytes Lab7/bpngbttn.cpp | 61 + Lab7/bpngbttn.h | 89 + Lab7/bttnhndl.cpp | 54 + Lab7/bttnhndl.h | 80 + Lab7/button.cpp | 113 + Lab7/button.h | 160 + Lab7/cmpnntls.cpp | 30 + Lab7/cmpnntls.h | 49 + Lab7/cmpstcmp.cpp | 124 + Lab7/cmpstcmp.h | 108 + Lab7/compnent.cpp | 72 + Lab7/compnent.h | 133 + Lab7/desktop.cpp | 137 + Lab7/desktop.h | 115 + Lab7/event.cpp | 98 + Lab7/event.h | 113 + Lab7/evntrder.cpp | 61 + Lab7/evntrder.h | 84 + Lab7/extbttnh.cpp | 61 + Lab7/extbttnh.h | 82 + Lab7/graphics.cpp | 51 + Lab7/graphics.h | 83 + Lab7/handler.cpp | 51 + Lab7/handler.h | 75 + Lab7/keyevent.cpp | 51 + Lab7/keyevent.h | 77 + Lab7/lab7.mdl | 8269 +++++++++++++++++++++++++++++++++++++ Lab7/list.cpp | 131 + Lab7/list.h | 113 + Lab7/main.cpp | 56 + Lab7/menu.cpp | 45 + Lab7/menu.h | 89 + Lab7/mosevent.cpp | 51 + Lab7/mosevent.h | 77 + Lab7/node.cpp | 94 + Lab7/node.h | 106 + Lab7/ntconsle.cpp | 121 + Lab7/ntconsle.h | 85 + Lab7/ntvntrdr.cpp | 91 + Lab7/ntvntrdr.h | 82 + Lab7/panel.cpp | 96 + Lab7/panel.h | 90 + Lab7/rectngle.cpp | 95 + Lab7/rectngle.h | 114 + Lab7/window.cpp | 119 + Lab7/window.h | 136 + Lab7/wndwlist.cpp | 30 + Lab7/wndwlist.h | 48 + Lab7/xlist.cpp | 62 + Lab7/xlist.h | 81 + 164 files changed, 35594 insertions(+) create mode 100644 Lab1/array.h create mode 100644 Lab1/lab_one create mode 100644 Lab1/matrix.cpp create mode 100644 Lab1/matrix.h create mode 100644 Lab1/read_me create mode 100644 Lab2/array.h create mode 100644 Lab2/contract.h create mode 100644 Lab2/lab_two create mode 100644 Lab2/matrix.cpp create mode 100644 Lab2/matrix.h create mode 100644 Lab2/read_me create mode 100644 Lab3/atm.h create mode 100644 Lab3/bank.cpp create mode 100644 Lab3/bank.h create mode 100644 Lab3/cashcard.h create mode 100644 Lab3/main.cpp create mode 100644 Lab3/name.cpp create mode 100644 Lab3/name.h create mode 100644 Lab3/passport.h create mode 100644 Lab3/person.h create mode 100644 Lab3/police.cpp create mode 100644 Lab3/police.h create mode 100644 Lab3/read_me create mode 100644 Lab4/RoseModel.mdl create mode 100644 Lab4/circle.cpp create mode 100644 Lab4/circle.h create mode 100644 Lab4/cmplxfgr.cpp create mode 100644 Lab4/cmplxfgr.h create mode 100644 Lab4/fgrhlder.cpp create mode 100644 Lab4/fgrhlder.h create mode 100644 Lab4/figure.cpp create mode 100644 Lab4/figure.h create mode 100644 Lab4/flist.cpp create mode 100644 Lab4/flist.h create mode 100644 Lab4/graphic/dbggrphc.cpp create mode 100644 Lab4/graphic/dbggrphc.h create mode 100644 Lab4/graphic/graphics.cpp create mode 100644 Lab4/graphic/graphics.h create mode 100644 Lab4/line.cpp create mode 100644 Lab4/line.h create mode 100644 Lab4/list.cpp create mode 100644 Lab4/list.h create mode 100644 Lab4/main.cpp create mode 100644 Lab4/node.cpp create mode 100644 Lab4/node.h create mode 100644 Lab4/plist.cpp create mode 100644 Lab4/plist.h create mode 100644 Lab4/point.cpp create mode 100644 Lab4/point.h create mode 100644 Lab4/rectngle.cpp create mode 100644 Lab4/rectngle.h create mode 100644 Lab4/rose.dsp create mode 100644 Lab4/rose.dsw create mode 100644 Lab5/array.h create mode 100644 Lab5/except.h create mode 100644 Lab5/lab5.dsp create mode 100644 Lab5/lab5.dsw create mode 100644 Lab5/matrix.cpp create mode 100644 Lab5/matrix.h create mode 100644 Lab6/RoseModel.mdl create mode 100644 Lab6/circle.cpp create mode 100644 Lab6/circle.h create mode 100644 Lab6/cmplxfgr.cpp create mode 100644 Lab6/cmplxfgr.h create mode 100644 Lab6/dbggrphc.cpp create mode 100644 Lab6/dbggrphc.h create mode 100644 Lab6/fgrhlder.cpp create mode 100644 Lab6/fgrhlder.h create mode 100644 Lab6/figure.cpp create mode 100644 Lab6/figure.h create mode 100644 Lab6/flist.cpp create mode 100644 Lab6/flist.h create mode 100644 Lab6/fstream.cpp create mode 100644 Lab6/fstream.h create mode 100644 Lab6/graphics.cpp create mode 100644 Lab6/graphics.h create mode 100644 Lab6/h.cpp create mode 100644 Lab6/instmap.cpp create mode 100644 Lab6/instmap.h create mode 100644 Lab6/lab6.dsp create mode 100644 Lab6/lab6.dsw create mode 100644 Lab6/line.cpp create mode 100644 Lab6/line.h create mode 100644 Lab6/list.cpp create mode 100644 Lab6/list.h create mode 100644 Lab6/main.cpp create mode 100644 Lab6/mapfake.cpp create mode 100644 Lab6/mapfake.h create mode 100644 Lab6/node.cpp create mode 100644 Lab6/node.h create mode 100644 Lab6/pcircle.cpp create mode 100644 Lab6/pcircle.h create mode 100644 Lab6/persfig.cpp create mode 100644 Lab6/persfig.h create mode 100644 Lab6/pline.cpp create mode 100644 Lab6/pline.h create mode 100644 Lab6/plist.cpp create mode 100644 Lab6/plist.h create mode 100644 Lab6/point.cpp create mode 100644 Lab6/point.h create mode 100644 Lab6/prctngle.cpp create mode 100644 Lab6/prctngle.h create mode 100644 Lab6/prsstent.cpp create mode 100644 Lab6/prsstent.h create mode 100644 Lab6/psmap.cpp create mode 100644 Lab6/psmap.h create mode 100644 Lab6/pstream.cpp create mode 100644 Lab6/pstream.h create mode 100644 Lab6/rectngle.cpp create mode 100644 Lab6/rectngle.h create mode 100644 Lab6/str.cpp create mode 100644 Lab6/str.h create mode 100644 Lab6/test.dat create mode 100644 Lab7/Documentation.doc create mode 100644 Lab7/bpngbttn.cpp create mode 100644 Lab7/bpngbttn.h create mode 100644 Lab7/bttnhndl.cpp create mode 100644 Lab7/bttnhndl.h create mode 100644 Lab7/button.cpp create mode 100644 Lab7/button.h create mode 100644 Lab7/cmpnntls.cpp create mode 100644 Lab7/cmpnntls.h create mode 100644 Lab7/cmpstcmp.cpp create mode 100644 Lab7/cmpstcmp.h create mode 100644 Lab7/compnent.cpp create mode 100644 Lab7/compnent.h create mode 100644 Lab7/desktop.cpp create mode 100644 Lab7/desktop.h create mode 100644 Lab7/event.cpp create mode 100644 Lab7/event.h create mode 100644 Lab7/evntrder.cpp create mode 100644 Lab7/evntrder.h create mode 100644 Lab7/extbttnh.cpp create mode 100644 Lab7/extbttnh.h create mode 100644 Lab7/graphics.cpp create mode 100644 Lab7/graphics.h create mode 100644 Lab7/handler.cpp create mode 100644 Lab7/handler.h create mode 100644 Lab7/keyevent.cpp create mode 100644 Lab7/keyevent.h create mode 100644 Lab7/lab7.mdl create mode 100644 Lab7/list.cpp create mode 100644 Lab7/list.h create mode 100644 Lab7/main.cpp create mode 100644 Lab7/menu.cpp create mode 100644 Lab7/menu.h create mode 100644 Lab7/mosevent.cpp create mode 100644 Lab7/mosevent.h create mode 100644 Lab7/node.cpp create mode 100644 Lab7/node.h create mode 100644 Lab7/ntconsle.cpp create mode 100644 Lab7/ntconsle.h create mode 100644 Lab7/ntvntrdr.cpp create mode 100644 Lab7/ntvntrdr.h create mode 100644 Lab7/panel.cpp create mode 100644 Lab7/panel.h create mode 100644 Lab7/rectngle.cpp create mode 100644 Lab7/rectngle.h create mode 100644 Lab7/window.cpp create mode 100644 Lab7/window.h create mode 100644 Lab7/wndwlist.cpp create mode 100644 Lab7/wndwlist.h create mode 100644 Lab7/xlist.cpp create mode 100644 Lab7/xlist.h diff --git a/Lab1/array.h b/Lab1/array.h new file mode 100644 index 0000000..a4d5ead --- /dev/null +++ b/Lab1/array.h @@ -0,0 +1,106 @@ +//################################################################## +// LAB 1 +// ADVANCED PROGRAMMING IN C++ +// MATRIX/ARRAY WITH DEEP COPY +//================================================================== +// array.h +// CLASS IMPLEMENTATION AND DEFINITION FOR +// THE ARRAY +// Christian Ohlsson +// Daniel Alfredsson +// Karlstad 990907 +//================================================================== + +#include +class Array { + private: + int size; //The size of the Array + int *buffer; //Pointer to an int-buffer + public: + ~Array(); + Array(const int s=0); + Array(const Array &src); + void operator = (const Array &src); + Array Array::operator +(const Array &src); + int &operator [] (int index) const; + int getSize() const; +}; +//################################################################ +// Constructor +// Creates a new Array +//================================================================ +Array::Array(const int s=0) { + buffer = new int[s]; + size= s; +} +//################################################################ +// Constructor +// Copys an array +//================================================================ +Array::Array(const Array &src) { + size = src.size; + buffer = new int[size]; + for(int i=0 ; i> (istream &is, Array &v) { + for(int l=0 ; l> v[l]; + return is; +} +//################################################################ +// Operator overload +// Prints out an Array, using STDOUT +//================================================================ +ostream &operator << (ostream &os, const Array &v) { + for(int k=0 ; k(|uP)hV0mRf8gSsNnH-pghp4 zDIKa=U8EMN_p9qsDn(ky7_KioKE(_g^Ob;^Nu%saZ=fmUdDkh$%=T)w zre6#E+An&%%!@$y0y6t0y&lDZ_aQ&$@iHF*&P+P{VD_RD??*je=4Rl`mevxF4YkB0 zOXIObZkI2U^tEXkM2l`~H*5u@`w;+t79uY~zSvfnlH;0V;AWH@+x5uoYc4Vq$Mt^X z`9w^jJnDNH^6wzO7nx}R^5p_4b%`l4R7wBNlbej^`%ePk^2^?LP#ZNz;|O+u*bt_1kW6>O*IIXa@ec z!9Rjh#%pl$68}?!TX`?epnu2UbPn?WXW;ijzhee}6ZjV}emeae%=piMF9H4MhCXfD zYdUOQ4+2sOnerAH-0I(La4rPWR|5aAu`m5&9dOP+Na8O8Gw^$Xf73-*!QjYfG7-#V zL+NZVsIdMs*+}@Nn-Btq!d*W9QojxZ!PR$d=<8p%N;!#0JQ!TFd08@(O*^4cNQh^G zL5mJlDZwgFIF?YsSR$4McbeQW-FR~h71?MyxpStNRbkXboU}6nRwo@CPKQPvh!{>P zprf%wDChzRW&!9*Q$Mp#Z#ZyW*@786nd-5n=zo+}rv}iB!MGWDb}WWC+@L~ighYCup%b4Y z^m?`3(4RmIx(IZxomtqG7;|P}feoPkVsyBLB^K$OEV0ww%Mz>X0hZW}A}kr@qXe*Z z#aUu&OR>bZkQD|9W{GIMhb4A^F_wrn`&eSje2gU&*;@F?V2PUE^U))Jy+En_H*O`C zomHv_wQ#!h2^6KrA)$ER+1HM!>CRixa(dx<{3YY`LaH7mIC)|kX(5LYC2jJk;2cVn z_L@8_IENIymiQsTIkadq@n;0*5TlET9}t`)jkXdW6PzQCb`wtt&XGq~5Pv{$S|EBW z@d3eUiRb|F6@t?u(L0H^3Qo&JA0XZ=I4u$<*``aQ9bbZ^w|_f5{mLx1!xX63jucKq&}&D=cW}~P;O+$GE23Y33+V=Z z=-Sd>JK|CS{I?Gl@ADROjpLrbBXBVz4URLNoSssG&r=n|dtC!Y%Y23q0 z4^?=n;Wkg<)iS0}&s%Vb z_T;6jy@Z)694*fhhcJsPKUE`JkJreqFW*>^I?qZi&fY9?cU9$nTO3SeS0g|%s<3xr z{6o`){u9N(iTvIZYER2HFivbLT_slY<^vPn>3))?bDpxNaJu|o%Z;V{uQ4Cm<1vFd zV8#Ba!Ui~AW%&jg_jt;i3#Vzk@xZBp(h)tf!eL@CK;h+a&kv|q;pK+gy_-ux-67;H zggp8K8ofu`hi3kgosh=DMa97E!WvKEj-TNWk8diysJ*g$qO2wtBjV{5-G6dZ=>yOJel$5BwMLTzntAem zRF#`9Eq(M?ra|e?02!yOcvd%;=3XvfguH85AX4AqDF!|6N%}lm>c|YzF`%+c z(gY@fla!k%55y z7X1NW&iY383|+iuR(X&y;$lqD$$`=WEsPU%a^?ixfeAXS=@7Rc;%F8$dPvV2C+N$@ zBV0~!F=F`6R|02bWPvliYdxq46%i9=H~{508V3oyp&1$_IK5ize|7w-zZD6$ddEF; z21;*PMT`A!6#9=A0`7}^m(mP`8Yh}%Wy^GAyb=54KM*c4@Xyehk@xXPP9d=_qUbo{DsbC`vHY{+R;1*?-Y;d=Tn8;jCj;mIBg=*$7EzR z5ouO=7RFb86Cvpr|I;0kegcdkX{N(Zj={k1)*<)E9D56aV{V6}v(0eGLBn_$u2g_e z29ClP>5y+!9dh!+2prnM$_a^9zk7jbb-;uxmqS)UR+B^wuQ=o-H6bg55z`^-7@ua9 zCQf17yn;5_forkD_5w(*-2#oht2}!z$?t7cdm75~4@3|1(vvq3r5Di*+uAl&x>Cz4 zUn3#h9jphr+v$sVvjy3xVlOhdU%rKV5Q%NvPV39}7^9nutbx*3tMoIVx0|4Vz<|b^ zF$k!E&9?MQaU6oOKc4-CP`J!r;4=Sxj8E^sl|3>)bv}IttNoqbGi<)ejCxmmjFo z&w&0I=+U=emm0nP6PC8oD`@q?&K>=UVT?`+z)J>PBOKDYauiM#e7Xv5tb+ThV2=hd z#K|Gpp>P`Goa_dq$60rva*eSFYns6aSAJ15arMNf21*mMSQ?|>#0^EXT$$e=yNXN0geqs=K#>|{=J`9%yFbD_l0V0r=8`2(zDgtPitOk3=Nm+ zm}m_D{wfBQ?$hJk<*{ogHq|2EWmP z+td6l{5zd(EH+FZ%^x|N@14$_lKb@o;E`KFl)MVHHzTZfUzN^y5P)aQrH$xU-}7Tp z>4e3G=NslxhOKm!O_#1qM4VmCc<$7k9Bv*;<`R+2{N_!$SQZb;MtnXW9$nyn^DWJI zk{U~-z}J^fhjuS-Hducsn~v=Q+H~pAa&U(DC(J)4t-wGDUi5^=`#kas$bW?V9P+CM z|1QcOAYb`$k2i(9;u9WkAIc%*Um`z?d>DBX>WN2CrjY*%dG-O1_kkxp-k$*W0KO7% zAIc!|gMf+eLq34~%u~?i_dVW|$ln9}HuAH8nd?4@Hy_Bq!83tFpZ0ivfqdB?c)b4s z(eir3FAV-mRAU9wov)qR~3oy&4kS_-OBFalp&O=6kk%SqOROdw1 z0zNX><8AbK9;<6c?e)kHJnr%GAxhun-jCI?;b!C&$Opjl1WL=Z z`q7K~_IvyCm)!01G^0L(e0|a5J$OEzexHXrFao~{9z1%g$XNpT8RQb`J$RN;mEYL6 zzo{>OdB4wF|5cwtvDpVc>U$J<3UkiuTXIw?+Zm_Ij?+ z1pV{D*A#eW!`Hkuea!CLKc_E0mkLtP?LP1QK2;Ch>Ywv@L_f;sgZ^vbmz&-4^9}d= zytj!j(01#=69*5UU|1ct`aFBBZR4Py1^uVB^!fl8R-o<)(D^KEHA>rl^`lLF`!Day zU$MsL9q={Y0ku-T#?3zOR&B-!pBhHpZL}lj=P26V3;)K0$BGQrmrx%^y?fqJ%|~5tH$D^~k$TuLjA+JQfm{(=K@21%Jf_|BDN5x)heQLVYgyP8S>p{D@I>zYBf=@Uy1=Kf3C_=YmhT z;L|R+$y1f-mUAI^{ss7lT=hE){JuZH`)a^18{GrrvY1AJ#XMeIEQe=#WNqCW!sLp;70{spqMUXhyR=UFG4uH-aqQjS{LX8ehSR!MpS?U)GJYV2j1inGwL4iLY@HT-L3Y-`Cg91M-uzthz z7Xr6Q{oe@8<)qYG0(S`fuL5@pd^KLgNn*UE- z@NpM>IpmIM7PVGj?Q0)%)xRjP_MKw_>-oPDJI|QXliVt>7L;(opBGrq*WU=N=i)N# zL}ThcX|Pye-FDaoKkb5lB=B}&nmxCw^MJq^sgDZGZLfBXx?_WlmviV~AC(5O%d1Zd zd@c5s+QtW^UN7En3%r0V>P><5LOvs~UdZmw=3dE5VI2fmA3;0rlzaj03#*n~Cf$-r zhg*g+Ei1RKTfe$xgs-_wV zMSDdF+t)dbJO2%hYqagEHuSrCt%AL+)!to@8MMecN1J6;p;bW~ip!ogvNF+RI$NIGzj{H!<@LS_h~K2RCr;LVHkk(z{6#v$*Ni$@RC9fle65J-BrmKPE8K zjT1ES<>HA;T9>r9^~Od+BL;78V@0*0OD#KvT}Ce}+ugsNk!6c}MM2ARj-tl)ei&bC zx+58j=rO|1)U9W+^7&d~iEum@ad<>9yfm|WbSN3m_@WnFemsQ}SsH8a?$W0TTf)i2 zaBKuEW(b2p;;5A#vT=%c*XTZnolrKHcG#awlg#c+OE}^To9fY6Cfwq#lgI#hEr5@BjL=_HeZk5*VR=SA&$&IYHeTfWH=Oebe)D|Z?x$xv8PKnBFRaFch4Zh^GW9suk$Ij#NQ=ucdsJHdA0KQh+3r2RIIH{ zG`m-&l9^aGw!;Z>6OIz_dFGZH$N)-7t?t6(3VdkP05v5{CdL)V9m+S^)}boZXG zz8m%EFBr}QQ)wscM4U>S_Aby;G-z-LW=Ms?juqF@A(@m+&}e4;GV0Ll_R(DxFM;D4$EnugM3(p!PE4h9;VgZqotsmpy~~m?KGeZ~ zLUzaM?d)Y00?>^t5omU0j2NE5S`HV(q`^$VU^u%w&o99P%QE7mGA+48Y!}z) z4yVR2#qMn40t|E^wjuaN3&+Bxo{4?f2});Ov=!9tSPU(4K@-&dou=B4zF9B3 z2$k!k9mNJx&&4UVFlAK=1Ej8oWl`O!g*=!GMRc#7s3Kt*3GQkb57k|)hUjj~O@qLs zts=)wfQd*DEm809vMqGn?Y0f71nz2Rf`BYtw71z75F)Z{6Bk7fSxkgZx;iRN^r%JM zTrEWpT#qjliKHt{IB=R*+ysC$jyO9i3^MsN5Dgrw7z~?>G;C-6h^w9>g&e7mC2-o% zOcTe6deM3`88P#X`Qtckg9LnNd!-4-X(`F!;Yz(8rt}bZ*K?5Imm#F8Dz)j!l}X7| zT@799=@mjc9viK6pyyXQV13oXZD!QkBPzyda}RnrQ|-FljJll>pgS1c!D|B!sb=;2 zd+9XXNV+-@YjF0{Jw@$$xT0mah9Ki*_(GFx42Nm0^XmbN{+XRa@rp&;^?-$d!>!>e z!8PLHNN_Zi*>2X6_Gp=X5HgPK!i=~B1I%Dc8pg)QB`u@tz-X(ntsTSTkh?iRe`}i_ z;&x}ZRkuU?vtBf*aL_e%9eV7tIxvnf_7>n824`znb}|l7bT&}^6Ye(CW|A# zwM1{W<7&eHF#{avhoe4*A=M{z12^36) zaFUxFT{ok2ro+^xW65+ZyW3p*%0&r$+w>J24rQ|RK(<>Z?XWy}QaUHwf4jM?LLDxg zgi)^%dktL?gzJScZ|NXK;>9wvjV{yMXf2=Jm6cT^l(kk{CVK#+z&&KMjyTy+I4Xy? z-DBV;EF(-Mt3J#30%pSkl~?*(#QZIod-&^8n4ky-iWB{4Vfy7Mwf@;x($(j9Fq6)T5tKJL>L|J7e6*MA*c2 zG|^ES%i2m$@2o~~(9JaA_6{zLc}nlBQBL+34g~cK2Toen8m3S?sStL;MXQ6iHzSoc zGpE>iYqjY)4EBCRSX=|GT(d%(R0hvwD)VEUwCXo{m~Jb!NkGN?&~p$uXa<*Ta|;xl zA=m~FYd+aaAVfP9!uC#HaB4^DVNil&V6)tb=xQq~zK82vRND)=4#UkWJR#W2wGMNE z%H3@(E}+~^s+*gpRNLtI&B$K!dynO7#Z#49yK2?)=0*7J-r{EW{cf|rr>Cd2-QUr& zo###LT8@nD5yeos@je;aT0&VsCTKy>hU(_id9t_}jK`66n zU1B@Z5d6qVr<5;|%sRflmFt#fLnF!;4Q22+C9*q#hPuqAm2V`G^XNL8)c}6zqk&W$HGCMWd;-evfqe3#D_=S(KMV5dzjzK4basWE6c&j5g30GZ_0OJ^ zFPu%LAuyr~=>@8VMq^>+ldiCd$>2ixg&K6h^Q=)Pfj&7XZSr^V_r2iZ%+w>xk8n}q z@p2`}gKJ=XQjK?2!Y4nL1)&+ZO&$Yqc4r||9$zsp0^iNZmd=uS88Y6L2p?ZPN6=sl znQg%?Jb13J_}U1MxP_0eswdDmN8u)smx*tF>|18OVZIy64xrBV%O=cxmBY8vg!yLr zAox}QwmMt>FzWD5O4{(v_7wQ&wWRZ{I7{MjWXpF7e5b%iy-An1<0#3;*Fct!Z_N1) zoUatfhj%v>c|2^+G2#8Cyt3Z|z81hXk)LTFvgJDnc?a2vH3mTPF&9iVdN#9WGjzH1oq&irTy_R>9*fb89v(Y8Sp&=KK+V|TuL>|U!^{elJYor^5g95 z^f(Q?KLnV5#Y7(J@lU2CACE<@_#J(E z0jMOa>j_{kGbr+{hHt?XU^HXG(8PvXoSa+@kY-Rip@L3q3I@qmL!c}3xGoYax zNuJ;x&y`)jqBO6CsZ0_Ms=LfbZr^N1C2|e zxb8L1QD971j~eIOKqQ{M(G?7N5Lm%Eg?eGKY%sr-=K|EYUa4GY8pmr=BrYh8>*dRZ zqj63PzP5k`qH(-IBo2qvxb_S>yvBKu2aZ+2=Lv4lBsHk31*fADXpoR5Rr04n4*R%q z>z=x4>-p`PZn&P`0}0p9DVO!v6@koj>aH9B?~db=Zo}H=b7G4;=qDDBs}h|L=i! zoB3pW_P51FpV{A=pxd*m9DkYeD(&Z<*Zw^31~#N7^(zg?Uu$ok;ndYlisvZZ{FedW z?rJ|5IM2yh{_B9-AMjItGjMAk9y;p)Ztc&X{I3Si{#qemF8DV9w`UHCJHV|!^Me5N zMV?ycrpndvFmT%+>HEnKc~2O5p9XHvgHql>;7m4feHFO-gA+dl&h^p(9)6(VpMcx- z&ks)g82EAYe;erR|83y*94h74A!gb0qQtKQ?*1UfeBkzME9qUp&qAL4K*g=V`TN{w zA^Qg82Y|ajP>}#`&n4b~_G7?#VE|TmUz2(ixINEG`A-73=RApjj`VST?v(hS1Gnc$ ziGKsQjTf}%E5Pj;OVVEl?*8DzByjo%BOCSk4RH4dG%iETw(+hR8eR>2J@oyI@WWQX zZM>X|@1gKiojnuE{?-C_e}Li+($Rk0wC8C%dq$M}JaOmNe;l}tj~vgR0C#^d;?IHG z^SNx#lX-hw^1ln*p6?}{KU{Ht0OM`o_M9u}^>8dZ-q{%M6~Nse{J0AE6Ohlia|7~? zbVQSyS@On%_Zm0}a?W87IUf>EXEWK{@Guxs_?}HLxO&UR&B68S2DjjQ7y7Mu7EdVK zL5U=TBk|-A-rUM61zhZF9m|U$@d9Z;(e) zqLQKGI}Uszlf*-M`8vWXSKsdb`-tI?BD)*@OBjg88Qd|x<)`?~dOR{FbH z1az^|-=nb}s(p%-0`` zgw3n8BnV33D;uWxO=M=V850k9aiVd>a; + cout << "input Matrix: " << endl; + cin >>b; + //b[2] = a; + b[1] = a + b[1]; + Matrix c(b); + b[1][1] = a[1]; + cout << "c:\n" <=rows || index<0) { + cout <<"\nIndex out of bounds! Quitting...\n"; + exit(0); + } + else + return myMatrix[index]; +} +//################################################################ +// Operator overload +// Allow inserts in a Matrix, using STDIN +//================================================================ +istream &operator >> (istream &is, Matrix &v) { + int i,j; + for(i=0 ; i> v[i][j]; + return is; +} +//################################################################ +// Operator overload +// Prints the Matrix on the screen, using STDUOT +//================================================================ +ostream &operator << (ostream &os, const Matrix &v) { + int i,j; + for(i=0 ; i < v.getCols() ; i++) + for(j=0 ; j < v.getRows() ; j++) + os << i << "," << j<< " = " << v[i][j] << "\n"; + return os; +} + + + + diff --git a/Lab1/read_me b/Lab1/read_me new file mode 100644 index 0000000..d7d3889 --- /dev/null +++ b/Lab1/read_me @@ -0,0 +1,12 @@ +Avancerad programmering i C++ +========================================== + +Denna lab skapades under Linux med +kommandot: +g++ -Wall -o lab_one *.cpp +I katalogen Visual finns programmet +även skapat i MS Visual C++ 6.0 + +========================================== +Christian Ohlsson, Karlstadds Universitet +di7chro@cse.kau.se diff --git a/Lab2/array.h b/Lab2/array.h new file mode 100644 index 0000000..75b4f8e --- /dev/null +++ b/Lab2/array.h @@ -0,0 +1,130 @@ +//################################################################## +// LAB 2 +// ADVANCED PROGRAMMING IN C++ +// MATRIX/ARRAY WITH SHALLOW COPY +//================================================================== +// array.h +// CLASS IMPLEMENTATION AND DEFINITION FOR +// THE ARRAY +// Christian Ohlsson +// Daniel Alfredsson +// Karlstad 990907 +//================================================================== + +#include +#include "contract.h" +class Array { + private: + Contract *myContract; + public: + ~Array(); + Array(const int s=0); + Array(const Array &src); + const Array operator + (const Array &src); + void operator = (const Array &src); + const int &operator [] (int index) const; + int &operator [] (int index); + int getSize() const; +}; +//################################################################ +// Constructor +// Creates a new Array +//================================================================ +Array::Array(const int s) { + myContract = new Contract(); + myContract->size = s; + myContract->buffer = new int[s]; +} +//################################################################ +// Constructor +// Copys an array +//================================================================ +Array::Array(const Array &src) { + src.myContract->owners++; + myContract = src.myContract; +} +//################################################################ +// Operator overload +// Allows to assign a Array to another +//================================================================ +void Array::operator = (const Array &src) { + if(myContract->owners>1) { + myContract->owners--; + myContract = new Contract; + } + else + delete [] myContract->buffer; + myContract->size = src.myContract->size; + myContract->buffer = new int[src.myContract->size]; + for(int i=0 ; isize ; i++) + myContract->buffer[i] = src.myContract->buffer[i]; +} +//################################################################ +// Operator overload +// Returns a element in the Array +//================================================================ +const int &Array::operator [] (int index) const{ + return (myContract->buffer[index]); +} +//################################################################ +// Operator overload +// Returns a element in the Array +//================================================================ +int &Array::operator [] (int index) { + if(myContract->owners>1) { + myContract->owners--; + Contract *tmp = new Contract; + tmp->size = myContract->size; + tmp->buffer = new int[tmp->size]; + for(int i=0 ; isize ; i++) + tmp->buffer[i] = myContract->buffer[i]; + } + return (myContract->buffer[index]); +} +//################################################################ +// Operator overload +// Allows to add a Array to another +//================================================================ +const Array Array::operator + (const Array &src) { + Array tmp(myContract->size); + for(int i=0 ; isize ; i++) + tmp.myContract->buffer[i] = myContract->buffer[i] + src.myContract->buffer[i]; + return (tmp); +} +//################################################################ +// Destructor +// Deallocates memory, used by the Array +//================================================================ +Array::~Array() { + myContract->owners--; + if(myContract->owners == 0) { + delete [] myContract->buffer; + delete myContract; + } +} +//################################################################ +// Operator overload +// Allows input in the Array, using STDIN +//================================================================ +istream &operator >> (istream &is, Array &a) { + for(int l=0 ; l> a[l]; + return is; +} +//################################################################ +// Operator overload +// Prints out an Array, using STDOUT +//================================================================ +ostream &operator << (ostream &os, const Array &a) { + for(int k=0 ; ksize; +} + diff --git a/Lab2/contract.h b/Lab2/contract.h new file mode 100644 index 0000000..9f46392 --- /dev/null +++ b/Lab2/contract.h @@ -0,0 +1,26 @@ +//################################################################## +// LAB 2 +// ADVANCED PROGRAMMING IN C++ +// MATRIX/ARRAY WITH SHALLOW COPY +//================================================================== +// contract.h +// CLASS IMPLEMENTATION AND DEFINITION FOR +// THE CONTRACT +// Christian Ohlsson +// Daniel Alfredsson +// Karlstad 990907 +//================================================================== +class Contract { + public: + int *buffer; + int size; + int owners; + Contract() { + size=0; + owners=1; + buffer=NULL; + }; +}; + + + diff --git a/Lab2/lab_two b/Lab2/lab_two new file mode 100644 index 0000000000000000000000000000000000000000..e72b5087b7660907933f4a36c66e15f7b06345c7 GIT binary patch literal 20273 zcmeHvdw5*MmFJbzvKw0h*+62#t4)B&V7JtISwcW8%k2kPwk+G&1nj2W-BP#R>K6U* zV`70qCx%W(jPqb13?U@*%?=Zj;F&O4CK+ZFo55kiW}FPkdS@LzP4FbGZOuk(93v)5 zw7=h}s_rY<5N7xL_OC6wROi$=b?VfqQ>X5u`abAgzq+if%rdFms<4PnWF5{Xl-qAt zlqSn%&9Q2&YpttLS{7+dL*PLk0nA*9>_DzSKFbUm^QC~9Nu%syZ=hMo%~x6$GuvA= zirxym^@zjCd=iB9=#>4EUXEhB3;C$S$$S(zGwJMu*@;e^pKv&tUBHutc!GcjV^0-3DZdW5dMBx!?TMI&aQY5{3D<_ZS?DH zupOj*m@Y@ILarvF6X)a#_nafPU8~qLw5d!a?%CX2dzE8p9LKS=<}`nNrw~PA-H8dgmMw^K`6xbpGK|) z{yG#P{uFX6@UNoeM7@B#7C4Pe`Z44%@PE|!k5KLh{sc<$pF#f2lcxWRt^Wc13DAc% zeHx|HHonWz@3S`gjlf?7z7{3rHKAOA@ht_+@wEZ}9_T48?{45siVod0PCHWH0~)7( zbkOW9{0WUefRg-Q(>QsFzo2m=@B6dpv>Ov0ko>;@{s{CtrSWm#FT);O2n*l=zX84- z^tUvSa@eo)ot zd>$A+2yy7MghO?xpazV2!8m*43D(enp33DH(`Ln~NyKe`G9{V6|W>`Eq852%U- ztu^b{t?cwQxa*6Mhn`y64E1tSmAZa*9f@#b$=s$HTbarMtACVNX6-~n25T2`O(cRi zU17!95Q+4SnofLy(95j@n!W`wY7XdJOO@EU7=tRYlU;`Tx#(~aODx)}SYkJHvBavo zo+WmyT9(`emJ-1BR?pIffW{KrMyoJb)~zhDwXI-@9by$rM4z=RvBKB0#P-_F5(;h2 z{_EyEHNNK)$G2h2%6w-%u~cP#A*k7N`9DFC-v9}@9aFC!x2Bt`&~o~Q8vG^W^bH(B znBdsxG|~+mN|>~z;z1g8bUD~R7GI4u!gOT1ffS|r>}e1+h&On5u-dckR-@O{Kxg40rA4rr`Ka9S)p zK-?0XmJ9DEKJmM0?mv<||F$#xFPSrw-CKIX44`4|nw#zlzy7$xnO}p3XAjRvuzTjV z6}Swu(yfI{vgd}o9ofro1)j5}Pkx0!rqxQ1z1WK2{;82v^}O&?&q2}~=<-A*+hJO) zSC41ULC~wmhxc+KU*t{(=1am+xR+{h8@e|1SC89NpaSF0ZFgs%-@MFAwSnOm7Slf$Zf64b~|$Ovt5(9bk(rquQ>Yd{2?$&^IX?t zwk&(9;3{0RE&q(FEqtdi=WxCPNZw6h-(s8L(D*$&eXkye9=WZ~oVP0HobFI%wt8On zWC5c)EK0hRlDUe^erMSOt+|TnwbXcv=`!mb%?*xj%fF3HOthXXIH7R<^S_;*&J9jx z+Y28WPTgpseXEta1VgCl$-fO6cnhe-h;r5Qa+@3+S9^BwEOn{LB^<@U9Z}5Lk=)?f z?A#OHDe9j+r}(^6?JFGzD+-;5bC<$K!wz1WShtZ%F z4^HL0QyAzSj_g{8jBA1w10`cU0Dk2OgA+8?B$YZW69C4o zlkMG(gO!C&deqh_cuUD(^Ep|+-%gW-Z)ttR8Gkr@t5`fcIGWo!T2TYfxv_A)^vAJW ztJE25qAe@)L%)F&9>E{vr@Ed#AedKb4kFJp$@GN2@=l@NtnZ z`e(aN=XRVPc8KvY?YDCUbe+xZI6Himnvfl*b05uh)nvOSayuq+S7vvN3rjw?BVS}W zlj|DKU6kz_g{<6F*Jkmz>r8IPXzteexvtY??_{gsA(LYVFbXP%HM=?gvQjWRvb$Uq zX5h}e>?|xVRL>KG=Rg1N81xcNc5Cuj;TJ`QBpC8fzKl zKcbe=!&y^z4!oqt-CL-=X) zP91a>ZZi5{s3fvD`mhs9?p`z(k{Eaa1$I>Nqxx} z5D`J-zEG0;_iBbI8-Ymatk&9E2bY(r%Zy8SN;`8qYP1s|l=tKhh$zNW@7WXH38;Vw zdN%W2M-~&^HJ-hD3h@8|B0HELzH>T@$@ZSf44$zL-n<)(`Azxz#AwcpH}9D4B568Z zUMMg83+68W(&Y5C3>Y5$7l3nJ6WI;$R0&KNUc0yIprgjwEZ0nLnwneisZxn8xP1&5`pVO39Lx z8TxN%DS;~MojBngr!kGT|jrJLuiy*j}L1iu`=xldBrG#;U&d#2oZJ3}*MTfX!=agB{$fq2b z6Le(w1wQ<+Y)&xuV0mGm4qrL%WcwNiD*S*hB>%K>{jB$tVyHrN&Tf4z*Y(=)Wok!T z>l}70=+1vrGmhlCPG!4Z&w5Yhx=!ZGasbN^q6&{uo1yIF*u&6f>>>Qg431l=+hDz! z-Z4(^K$tt-)-|4XVvm+hCgVLV9&&n9{u2n(jAy6eAxE&;YY&;&l>aD9Ko9u}YUv>` z#TLap_ES{RL%#HD;~~cZ4TnZ%?wUKCnU6cIRA;W!nHibNVb>VG>{GN~_9qodXIs*l zo?EzFI?TK>wY&VT{IB%_Iip&1=l=#`8Tu@Hr2EgNa@OvvJu>qk`rMpbGpo$_ zRKkG^ZxpKXb?87lAUt$2unRf-*bof-ejReXEKld}cgPQG#`ki_u|MF(DGpYMi9g={ zF8+AO(l-}zsZ;@oZJH!6ARs;SBztT)S!B==%+?T>4Cz2vq1WxsqAx0Djw zxSf_4?lBiJybR`k`ppu367)tL6x6oZgF!$IY_|CmYSzuZ+o}}gGJlcF{PPT8vj5ul z!wc!Nxzyj(!OF3tB|kVU`h2)Vp9K98(8CpfjGG}9tdw5g#?sb$)fv68bB8N6WB4Kg zxVhsRVf?Kk_g6~bPfB2}1df!zv;ujtwF`F0p2IlDS^=qXmK`o$V{qTsmsT(8i7O{Q z(VfqWOIC&Xq%}MrTB-THqSVbB6QUij+roS%kpDLcX-?JTiei(WD?ZM}5z}NsH__Yk z@Zk9FGU@h<#j7OB-IiaXtTgN$@75gqiX8c8mCo?i1O!v@@$UR3N()LG_KtSvpI08g zyG*xVUTXiGxTrIGf+SonKc(@J>~FHK@_F3y-^RbwsVZD?pUfPe%Ct|XaVLT2F1!<#+jo?_48{GIT!gZo zIPRDgt}9Ngx5||G+IS zjdl4`iO7DS)$?}U0!}~w1o%fM2cEhR{Pw3E&R3Ajb1GM(yc{`-{Bh)_H0*^T@H z@^R#$VTbb|@@J8sKz;@Jz@rZ5!^jcjeaMe%{EI066nXAphx0z<`p@ER8pB0L$*GLen0PU{uuCC&lQvWTWr$D#22mNl+X{QwEuYrz-t3~;@0{#r@M^QhF()3%j z(f8* z^N$?P9>7KUnTnlm=N&Yy*zPcR?gbC;Jq*uQw`0)Q_9*D%p#OX(z1$0i6{tH2I-k9+ zLTTC;ZMfR)>~>degIWXbsvfs#;`gG_)v#^-EEIFX}Iz zRlf@LQPjI^^#J9uvAx`WRK+sZ{ZCvX{0{kIJi5IG*^PWV@&@Fc$T8#xkRL^U8u=T@ ze~bJB#hZJ)f3PM$i5C(m!w-SZD9bk) zd~IHXjBP;@)~ zgJerjTD53^mmLxqE<=DJF^Ej~dX#i#rbgr;0!X`%hX^1YL>?l5#B0hS0!Vq}Ap%G@ zzz{l{0~a-I!#4Oyz{Xb3Yq+-EvX0w$7Q?el+ddoou)x<_Oz&og z|C{1-???j|LmGYrTiQ2-M_6X~;LmLJ zH)D$%l7lmrwOe4t|DSB|X&ZborYm(z zs%89D6nh(|qoujIu^F7ow8a_o z)N76EA=A^)s-~?dsl;bo!9!sU%@EZajr+Bm=y?aN2~-P5jBr9oc~EK6TS*eL*y*Lo z^)!%yP8h|r0^>9uOklDVC%>Y%h$k+sU)tEv9_jb@X}qz46{UtYwagT@XuXVVd;exe zmM>`+1r5)6ifY??V0@+N-gqRa#t1u8x3(pg+g%rl1)}L-h{s(6%aRBBcg3SgclceG zA5V`3mqi*|Thz(exJSBZ4zEtMNrZx7e@ZJA>I)>7HMrY6?v|F~2ywUzQfKxRjR*YE zkg8K~U9l>Pq3yk8ORYx&OR}jo7z$t_qrQPSXPfnKq?=&Mh9zp6Q{i|z>Bqw&UoteH z88F+N@O!PkL_9r!$492VrAa&^mhuJCI3=b`Z-{Lzsu4+{Sm3}cGCZGj9!B&RS_AQ9Bo)~k@^KX!%^I3TwOFXne?F~M)VkM#eRx7I z;0s3jBB>-@A2w=is9)OJexdqS)T2LNAn6-OgaV;psMw~l1+)Pg)VB*}81M%|MqE>q zG>cuRS#twuIJkL%X0VOwjl;rZCNVapUkmj>quKS#sYAQnNB0-K1dgj6r&NctgW^{> z+m}cOQuLulZcfR@7DK}LPzV3S?$fp|j~Y+FJqox+e)@o0QsC?QOUEM)R5Sz4Uj5?gv;pvbmVPj5TVKdLb>WB2bN_pG?1)I$0GZ=M)zW!59T#ArcVpWH->BnQxYU!8KM47x zvliM4>NYKb7HOXj>Yip@?LptHmtBO)HPen_1F7fYlvPy2(a z*Jf0au$%;YHH?Sq7FI)atKp_WVA6V#V<*5wB#4%%_q3Q6D(<$L1|jl=Nt3Kahe7(_|TqW6OPkR;=R4a zdNoYxA!@JZAi*y~7$~XKpe9!)C0TMcbgiaW2#IKqb55Mn-^EpKmX(4LGD3tKZX3r{PA@(u7!pQ_A)!YE;7&Edw(MGG2x+G)YBp z2;4Zo8nEb}+_x)Qv}mImun=$zJ5VCnM%)|p_4|{1^g2==Ewc|oGGw~YBW}U~lh~4a zvGH+9%jlXg+EQ$5#PB%eRu0fp-=K!LCv?E5+ob$iEt-LV&o*^UYV5K)FpdEB7Og;& zo^0_aMJi2GllE$*c5+rrn-O|7&DK==yUcKJvNsa7cdDmfIyFRFTWu8S7QSDiG~2x& zE^DJ`_iqrHDPIy7CH~^_Y_^#ug~RDHiOM+A5UYJ4RcfY|J1ojAieVYQBnbI~$znJj zP!)9&hBacM@$ZY;$v_x)UST+$K)wM#eu2P^u9Zt^4xz z`jaVoAlogMc32)f)1Q{@zfoUSp$->L!l>4WxrQzZ!u3Lcw{(yq@nX5&MwhE?bS9tK zl`W%&KV_`8T=oD+fqTei9So)Xfw26{z&-|U!ZN~vcr+3)!&7P*iWo%M1527aGh0Ps z;Sek$jkQE|t;c5Z0lBt86wnuVY|)qYCxVPvSXSH_&BYxWK({>-47enfY4k;aC}_xN zxSad9Tms-iL0F-QSo7ySNT;%enPa5d0g99hVQhK-eR)P1s_u0pC79t{UY! zm$RYA-d?meMcOScn;+zIuS+%|?xp+tjYYM?7;TF20^Dj*!0!#QKaJm3sK@{^mj#7l z5hNQRwI9C?c@OS$>KP6~30Z5HLgl1F*asIa4c^?06x+<6V(qP^rspx3`w?NW4YYX83T+0GcrH_% zAMK%ApXp_wj;LIZ_*g5*!1Y zWp7g2+!UqMM#XPN_8GrSx@C=c zs%5R|?7YQQi{GIxaoO*8U7ohKw)#d-Q{8$7eOIjzJ#LS?!IcO_L;hrF$^UO`dqD8M z42CxflK2R;-s7(Kp!|PPXSwlU0KZ^EnM$Y<+mV9cN1?=k<&MQuA$P~hb<0xzKFb~U zC-FEXcp!#`s!Sy;cV8^+-ix&!iN|IjKG5J5?!I_R0r*Lp0tTX};lo(VEuj2z%`HC` zbSL8S12(t%i{~)D(EdPZ01HHZYv&Gy)erP6cOVr{KwwZ6(hF4c_eTPjTe`v~CWG_i zmzB^3&$IeNG4#nnDU-jCzgL2XGgFQ%KPX3u$IHbe53YgnNj2V837`D%8w3|{lN=i0 z>{cRE9$zunf^P+~p|fOOj*NFD!pB$7VKm^Yezpa>@Zh<=#n(o7#4UV$RXvHu84A~l zyi9!agYzr$mYHvu4?@`<)R}(Sgqg2$_*R-Q-%Rtx+zP-(XTu*r9o|Vv8@}1Dfy>fs zN#|Q}mc*mThHnx07NL@Qlg_u}hL5j-3?JW^*Me_I)A8=6$j4Lk924GO$}9V4!B+>^ zB+6s@B(mW<1$n2~uQ3K_?@$3kuiC@ckWd!^bmplh>A_4OtD}D>goh$1q$M=KC);KAwPZg0CBOCQ%;qkB~WM zREftrw!73x1o{;dc`!xRf7d1Xc;3^wSe;$~Dv3NyqsSbGN#t7vU%f(CP#*31b7Y$t zto5~6ceVv=Wc(6*1_o%Q+AS+)t1#dsXy`@~=|98K3-#(t)fqm#H=EJ#$MD|wcZx;+ z8a|fv6_e^aaU=;HT!RXLVi)=#*M@x@&)k8NC>*3tMxMd#CF2%x^=S>*6>&%5s%OR_ zg{vMIZxpUNU|dnSnk{oer9x&@#R)}MmSH?lxD*!Gy}~&Pbs|RLd>e?wvp1@OArEi< zi?~`6T$qZESFT80fC|SeRU|Gnh2u3T5*L)h)$--SQ8=ds3mgkX;dq0H#D$=6?HP1< zqzXC61A`Uu%UNCgP(+3P)P(ure}#lJVUa%-a@fa?8~0Ro6*`0%N2{=~x^1aKPI#3n zD&*T9cKn(dPV2yj2xu{LM2O$WuuCNUx>9pEm*RKnBSqw220DLLOSUqEYHnB(00h5G zHXQjmuBP9K(zGu}dp~ev-!gnEAq70F<&*v(aQ^Cc5y~>y>k*U#Hu@KUAGYCN25#n$ z`g|R@nXfWz#TOip_6LsVJK%R|oc;e0_>`V+wr78PXhb|5R&trXZ)8*>n*-O(O>0bbD z&a|@qp8_{$Nr`_OI1@t)SLb(uPeR_+fGO`^fpa}I0p^EC#@JrR1AbWLm!u;eApQwI zqo+ChO8J)nH)lPgGKZ5qBwEX*lKLLDL%j1bWbKaEv&j7cN=g)}ic*^m;1l;~%lw-in zSzosQC*aT8YYQ1am*_VzkuWzMy&AJU}#O~D7 zEGxcicPNl@w_576CGv<%RMK>O!GuqE;&|vU-v#Nk^=ikuz z^L(q?z8RywN;CUAH7iz>J|ly!d*b_MbUkAb5sMDT2gy{Y_!*zsp9X5}jK@-Voll-w zhBIpO6FT;uX9_ERD2Qe#&7I9z^cQh1{J|l98wW$#%s0el5^d_ft8_D~GoGK>8p`L7 aeBv2;9JKiilaQ#yMBeMmMzg*X^}hj|ivwi< literal 0 HcmV?d00001 diff --git a/Lab2/matrix.cpp b/Lab2/matrix.cpp new file mode 100644 index 0000000..c48ca19 --- /dev/null +++ b/Lab2/matrix.cpp @@ -0,0 +1,16 @@ +//matrix.cpp +#include "matrix.h" +int main() { + Array a (2); + Matrix b (2,2); + cout << "input Array: " << endl; + cin>>a; + cout << "input Matrix: " << endl; + cin >>b; + //b[2] = a; + b[1] = a + b[1]; + Matrix c(b); + b[1][1] = a[1]; + cout << "c:\n" < +#include "array.h" +class Matrix { + private: + int cols, rows; //# of cols and rows in the matrix + Array *myMatrix; //Array-pointer to our matrix + public: + void Matrix::operator = (const Matrix &src); + int getCols() const { return cols;}; + int getRows() const { return rows;}; + Array &Matrix::operator [] (int index) const; + Matrix(const Matrix &src); + Matrix(int cols, int rows); + ~Matrix(); + +}; +//################################################################ +// Constructor +// Creates a new Matrix with 'c' columns and 'r' rows +//================================================================ +Matrix::Matrix(int c, int r) { + myMatrix = new Array[r]; + for(int i=0; i < c; i++) + myMatrix[i] = Array(c); + cols = c; + rows = r; +} +//################################################################ +// Constructor +// Creates a new copy of a Matrix +//================================================================ +Matrix::Matrix(const Matrix &src) { + cols = src.cols; + rows = src.rows; + int i,j; + myMatrix = new Array[rows]; + for(i=0; i < cols; i++) + myMatrix[i] = Array(cols); + for(i=0 ; i < cols ; i++) + for(j=0 ; j < rows ; j++) + myMatrix[i][j] = src.myMatrix[i][j]; +} +//################################################################ +// Destructor +// De-allocates memory for a Matrix +//================================================================ +Matrix::~Matrix() { + delete [] myMatrix; +} +//################################################################ +// Operator overload +// Sets one Matrix equal to another +//================================================================ +void Matrix::operator = (const Matrix &src) { + delete [] myMatrix; + cols = src.cols; + rows = src.rows; + myMatrix = new Array[rows]; + for(int i=0 ; i=rows || index<0) { + cout <<"\nIndex out of bounds! Quitting...\n"; + exit(0); + } + return myMatrix[index]; +} +//################################################################ +// Operator overload +// Allow inserts in a Matrix, using STDIN +//================================================================ +istream &operator >> (istream &is, Matrix &v) { + int i,j; + for(i=0 ; i> v[i][j]; + return is; +} +//################################################################ +// Operator overload +// Prints the Matrix on the screen, using STDUOT +//================================================================ +ostream &operator << (ostream &os, const Matrix &v) { + int i,j; + for(i=0 ; i < v.getCols() ; i++) + for(j=0 ; j < v.getRows() ; j++) + os << i << "," << j<< " = " << v[i][j] << "\n"; + return os; +} + + + + diff --git a/Lab2/read_me b/Lab2/read_me new file mode 100644 index 0000000..4692112 --- /dev/null +++ b/Lab2/read_me @@ -0,0 +1,13 @@ +Avancerad programmering i C++ +========================================== + +Denna lab skapades under Linux med +kommandot: +g++ -Wall -o lab_two *.cpp + +I katalogen Visual finns programmet +även skapat i MS Visual C++ 6.0 + +========================================== +Christian Ohlsson, Karlstadds Universitet +di7chro@cse.kau.se diff --git a/Lab3/atm.h b/Lab3/atm.h new file mode 100644 index 0000000..813d3c1 --- /dev/null +++ b/Lab3/atm.h @@ -0,0 +1,15 @@ +//atm.h +#ifndef __ATM_H__ +#define __ATM_H__ +#include +#include "cashcard.h" +class ATM { + public: + double withDraw(Cashcard &myCard, double money) { + if(myCard.money < money) + return NULL; + myCard.money = (myCard.money - money); + return money; + } +}; +#endif diff --git a/Lab3/bank.cpp b/Lab3/bank.cpp new file mode 100644 index 0000000..87f073a --- /dev/null +++ b/Lab3/bank.cpp @@ -0,0 +1,14 @@ +//bank.cpp +#ifndef __BANK_CPP__ +#define __BANK_CPP__ +#include "person.h" +#include "bank.h" +Cashcard* Bank::makeCashcard(Passport &P) { + if(&P) { + Name &N = P.getPassportName(); + Cashcard *tmp = new Cashcard(N); + return tmp; + } + return NULL; +}; +#endif \ No newline at end of file diff --git a/Lab3/bank.h b/Lab3/bank.h new file mode 100644 index 0000000..3b85b1d --- /dev/null +++ b/Lab3/bank.h @@ -0,0 +1,16 @@ +//bank.h +#ifndef __BANK_H__ +#define __BANK_H__ +#include "passport.h" +#include "person.h" +class Bank { + public: + Bank(){} + ~Bank(){} + Cashcard *makeCashcard(Passport &P); + int insertMoney(Cashcard &myCard, double money) { + return(myCard.money += money); + } +}; +#endif + diff --git a/Lab3/cashcard.h b/Lab3/cashcard.h new file mode 100644 index 0000000..1242c74 --- /dev/null +++ b/Lab3/cashcard.h @@ -0,0 +1,19 @@ +//cashcard.h +#ifndef __CASHCARD_H__ +#define __CASHCARD_H__ +#include "name.h" +class ATM; +class Bank; +class Cashcard { + friend ATM; + friend Bank; + private: + Name myName; + double money; + public: + Cashcard(Name &N, double M=0):myName(N){money=M;} + ~Cashcard(){} + void print() { myName.print(); } +}; +#endif + diff --git a/Lab3/main.cpp b/Lab3/main.cpp new file mode 100644 index 0000000..0fe57c2 --- /dev/null +++ b/Lab3/main.cpp @@ -0,0 +1,17 @@ +//main.cpp +#include "person.h" + +void main() { + Person myPerson(Name("Kalle !"), 20); + Police myStation; + Bank myBank; + ATM myATM; + if(myPerson.getPassport(myStation)) //Person gets a passport + myPerson.print(); + if(myPerson.getCashcard(myBank)) //Person gets a cashcard + myPerson.print(); + if (myPerson.insertMoney(myBank, 200)) //Person insert 200:- + myPerson.print(); + if(myPerson.getMoney(myATM, 200)) //Person withdraws 200:- + myPerson.print(); +} diff --git a/Lab3/name.cpp b/Lab3/name.cpp new file mode 100644 index 0000000..f1d40c9 --- /dev/null +++ b/Lab3/name.cpp @@ -0,0 +1,49 @@ +//name.cpp +#ifndef __NAME_CPP__ +#define __NAME_CPP__ +#include +#include +#include +#include "name.h" +//################################################## +// Name +// Puts name into a buffer +//================================================== +Name::Name(char *txt) { + buff = new char[strlen(txt) + 1]; + strcpy(buff, txt); +} +//################################################## +// Destructor +// Delets buffer +//================================================== +Name::~Name() { + delete [] buff; +} +//################################################## +// Operator overload +// Deletes buffer and makes a new one +// and copies the data +//================================================== +void Name::operator = (const Name &src) { + delete [] buff; + buff = new char[strlen(src.buff) + 1]; + strcpy(buff, src.buff); +} +//################################################## +// Constructor +// Creates a new name +//================================================== +Name::Name(const Name &src) { + buff = new char[strlen(src.buff) + 1]; + strcpy(buff, src.buff); +} +//################################################## +// Print +// Prints out a name +//================================================== +void Name::print() { + cout << buff; +} +#endif + diff --git a/Lab3/name.h b/Lab3/name.h new file mode 100644 index 0000000..305bc05 --- /dev/null +++ b/Lab3/name.h @@ -0,0 +1,14 @@ +//name.h +#ifndef __NAME_H__ +#define __NAME_H__ +class Name { + private: + char* buff; + public: + Name(char* txt); + ~Name(); + void operator = (const Name &src); + Name(const Name &src); + void print(); +}; +#endif diff --git a/Lab3/passport.h b/Lab3/passport.h new file mode 100644 index 0000000..0b5c11c --- /dev/null +++ b/Lab3/passport.h @@ -0,0 +1,14 @@ +//passport.h +#ifndef __PASSPORT_H__ +#define __PASSPORT_H__ +#include "name.h" +class Passport { + private: + Name myName; //The name in the passport + public: + Passport(Name &N):myName(N){} + ~Passport(){} + void print() { myName.print(); } + Name getPassportName() {return myName;} +}; +#endif diff --git a/Lab3/person.h b/Lab3/person.h new file mode 100644 index 0000000..eb28605 --- /dev/null +++ b/Lab3/person.h @@ -0,0 +1,54 @@ +//person.h +#ifndef __PERSON_H__ +#define __PERSON_H__ +#include "police.h" +#include "atm.h" + +#include "cashcard.h" +#include "bank.h" +#include + +class Person { + private: + Name myName; + int myAge; + double cash; + Passport *myPass; + Cashcard *myCard; + public: + Person(Name &N, int &age):myName(N) { //Constructor + myPass=NULL; + myCard=NULL; + cash=0; + myAge=age; + } + ~Person(){} + const Name &getName() { return myName; } + int getPassport(Police &myStation) { + if(myPass) + return NULL; + myPass = myStation.makePassport(*this); + }; + int getCashcard(Bank &myBank) { + if(myCard) + return NULL; + myCard = myBank.makeCashcard(*myPass); + }; + double getMoney(ATM &myATM, double &money) { + if(!myCard) + return NULL; + cash = myATM.withDraw(*myCard, money); + return cash; + }; + int insertMoney(Bank &myBank, double &money) { + if(!myCard) + return NULL; + return(myBank.insertMoney(*myCard, money)); + } + void print() { + myName.print(); + if(myPass) + myPass->print(); + }; +}; +#endif diff --git a/Lab3/police.cpp b/Lab3/police.cpp new file mode 100644 index 0000000..c0cf21f --- /dev/null +++ b/Lab3/police.cpp @@ -0,0 +1,11 @@ +//police.cpp +#ifndef __POLICE_CPP__ +#define __POLICE_CPP__ +#include "person.h" +#include "police.h" +Passport* Police::makePassport(Person &P) { + Name &N = P.getName(); + Passport *tmp = new Passport(N); + return tmp; +}; +#endif diff --git a/Lab3/police.h b/Lab3/police.h new file mode 100644 index 0000000..641588e --- /dev/null +++ b/Lab3/police.h @@ -0,0 +1,14 @@ +//police.h +#ifndef __POLICE_H__ +#define __POLICE_H__ +#include "passport.h" +#include "person.h" +class Person; +class Police { + public: + Police(){} + ~Police(){} + Passport *makePassport(Person &P); +}; +#endif + diff --git a/Lab3/read_me b/Lab3/read_me new file mode 100644 index 0000000..4c4e8fa --- /dev/null +++ b/Lab3/read_me @@ -0,0 +1,13 @@ +Avancerad programmering i C++ +========================================== + +Denna lab skapades med Borland C++ 5.0 +Lägg alla .cpp i projektet. +Kompilera för EasyWin. + +I katalogen Visual finns programmet +även skapat i MS Visual C++ 6.0 + +========================================== +Christian Ohlsson, Karlstadds Universitet +di7chro@cse.kau.se diff --git a/Lab4/RoseModel.mdl b/Lab4/RoseModel.mdl new file mode 100644 index 0000000..b539f46 --- /dev/null +++ b/Lab4/RoseModel.mdl @@ -0,0 +1,7079 @@ + +(object Petal + version 40) + +(object Design "Logical View" + is_unit TRUE + is_loaded TRUE + file_name "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\RoseModel.mdl" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose")) + quid "380423CC034E" + defaults (object defaults + rightMargin 0.250000 + leftMargin 0.250000 + topMargin 0.250000 + bottomMargin 0.500000 + pageOverlap 0.250000 + clipIconLabels TRUE + autoResize TRUE + snapToGrid TRUE + gridX 16 + gridY 16 + defaultFont (object Font + size 9 + face "helvetica" + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + showMessageNum 1 + showClassOfObject TRUE + notation "Booch") + root_usecase_package (object Class_Category "Use Case View" + quid "37DF8EBF0269" + exportControl "Public" + global TRUE + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "37DF8EC001CB" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + root_category (object Class_Category "Logical View" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose")) + quid "37DF8EBF0260" + exportControl "Public" + global TRUE + subsystem "Component View" + quidu "37DF8EBF026A" + logical_models (list unit_reference_list + (object Class_Category "Figures" + quid "37DF92E603A8" + exportControl "Public" + subsystem "Figures" + quidu "37DF936E0213" + logical_models (list unit_reference_list + (object Class "Point" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Point.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Point.cpp") + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37DF8F130133" + operations (list Operations + (object Operation "getx" + quid "37DF905302A6" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398664) + (object Operation "gety" + quid "37DF906802C4" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398665) + (object Operation "setx" + quid "37DF9078000A" + parameters (list Parameters + (object Parameter "src" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398666) + (object Operation "sety" + quid "37DF908200E1" + parameters (list Parameters + (object Parameter "src" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398667)) + class_attributes (list class_attribute_list + (object ClassAttribute "x" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF90240104" + type "int") + (object ClassAttribute "y" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF903E0382" + type "int"))) + (object Parameterized_Class "List" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\List.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\List.cpp") + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206))) + quid "37DF8F3C0255" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F1D703039D" + label "head" + supplier "Node" + quidu "37F1D6AF034C" + exportControl "Private" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + operations (list Operations + (object Operation "add" + quid "37DFA0890217" + documentation "Denna sätter in grejjer i listan..." + parameters (list Parameters + (object Parameter "position" + type "int") + (object Parameter "item" + type "T")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398674) + (object Operation "del" + quid "37DFA09B00B4" + parameters (list Parameters + (object Parameter "position" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398675) + (object Operation "isEmpty" + quid "37DFA18900CB" + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 937398676) + (object Operation "getSize" + quid "37DFA30803CF" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398677) + (object Operation "getItem" + quid "37DFA36100BF" + parameters (list Parameters + (object Parameter "position" + type "int")) + result "T" + concurrency "Sequential" + opExportControl "Public" + uid 937398678)) + class_attributes (list class_attribute_list + (object ClassAttribute "size" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DFA22D0185" + type "int" + initv "0")) + parameters (list Parameters + (object Parameter "T" + type "class"))) + (object Instantiated_Class "pList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\pList.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\pList.cpp")) + quid "37DF8F3F0028" + instantiation_relationship (object Instantiation_Relationship + quid "37DF9A2F02EB" + supplier "List" + quidu "37DF8F3C0255") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37DF92E00345" + supplier "Point" + quidu "37DF8F130133")) + parameters (list Parameters + (object Parameter "Point" + type "class"))) + (object Class "Circle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Circle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Circle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF932402C1" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37EF663C034C" + label "center" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA7130098" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF980D0264" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398670) + (object Operation "erase" + quid "37DF98170010" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398671) + (object Operation "clone" + quid "37DFB11E0199" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398683) + (object Operation "Circle" + quid "3801901F005E" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int") + (object Parameter "r" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623931)) + class_attributes (list class_attribute_list + (object ClassAttribute "radius" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF97850254" + type "int"))) + (object Class "Line" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Line.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Line.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 206))) + quid "37DF932C0240" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DF933B01A1" + label "myPoints" + supplier "pList" + quidu "37DF8F3F0028" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA70D039C" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF988A0322" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398668) + (object Operation "erase" + quid "37DF988E020F" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398669) + (object Operation "clone" + quid "37DFB16A026A" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398682) + (object Operation "Line" + quid "38018F3702D1" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623930) + (object Operation "add" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "38033E01030C" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939734504))) + (object Class "Rectangle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Rectngle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Rectngle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF953C018B" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F9AC500272" + label "leftTop" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1")) + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F9AC7E037C" + label "rightBottom" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA71601DC" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF985E00E4" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398672) + (object Operation "erase" + quid "37DF9862005D" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398673) + (object Operation "clone" + quid "37DFB1560059" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398684) + (object Operation "Rectangle" + quid "3801906800BD" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623932))) + (object Class "FigureHolder" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\FgrHlder.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\FgrHlder.cpp") + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37DF997101A8" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DF9B780104" + label "myFigure" + supplier "Figure" + quidu "37DF9AF80330" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + operations (list Operations + (object Operation "getFigure" + quid "380347120088" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 939734505)) + parameters (list Parameters + (object Parameter "myFigure" + type "Figure*"))) + (object Class "Figure" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Figure.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Figure.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF9AF80330" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37F1CF5801CE" + supplier "Graphics" + quidu "37EF661102A0")) + abstract TRUE + operations (list Operations + (object Operation "draw" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFA74202B2" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398679) + (object Operation "erase" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFA76F023F" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398680) + (object Operation "clone" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFB06E0362" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398681) + (object Operation "getColor" + quid "38019B95037E" + result "Color" + concurrency "Sequential" + opExportControl "Public" + uid 939623933) + (object Operation "setColor" + quid "38019B9B0033" + parameters (list Parameters + (object Parameter "c" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623934)) + class_attributes (list class_attribute_list + (object ClassAttribute "color" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DFA781015E" + type "Color"))) + (object Parameterized_Class "Node" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Node.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Node.cpp") + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206))) + quid "37F1D6AF034C" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F1D767033D" + label "next" + supplier "Node" + quidu "37F1D6AF034C" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + class_attributes (list class_attribute_list + (object ClassAttribute "data" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37F1D73E00DB" + type "T" + exportControl "Public")) + parameters (list Parameters + (object Parameter "T" + type "class"))) + (object Class "ComplexFigure" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\CmplxFgr.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\CmplxFgr.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37F99CFD01EE" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F99D4F0192" + label "myFList" + supplier "FList" + quidu "37F99D2800A6" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37F99D09001F" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37F99D7600EE" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939104770) + (object Operation "erase" + quid "37F99D8903A8" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939104771) + (object Operation "clone" + quid "37F99D930294" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 939104772) + (object Operation "add" + quid "38034EBD012B" + parameters (list Parameters + (object Parameter "figure" + type "FigureHolder")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939734506))) + (object Instantiated_Class "FList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\FList.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\FList.cpp")) + quid "37F99D2800A6" + instantiation_relationship (object Instantiation_Relationship + quid "37F99D490053" + supplier "List" + quidu "37DF8F3C0255") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37F9A22C0124" + supplier "FigureHolder" + quidu "37DF997101A8")) + parameters (list Parameters + (object Parameter "FigureHolder" + type "class"))) + (object Mechanism @1 + logical_models (list unit_reference_list + (object Object "$UNNAMED$0" + quid "37EF65F10376" + collaborators (list link_list + (object Link + quid "37EF666F00BB" + supplier "center" + quidu "37EF665403A1" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF666F00BC" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF667303D8" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF906802C4"))) + (object Link + quid "37EF667A0305" + supplier "$UNNAMED$1" + quidu "380423CD0013" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawCircle (Point, int, Color)" + quid "37EF667A0306" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37EF667C0394")))) + class "Circle" + quidu "37DF932402C1" + persistence "Transient" + multi FALSE) + (object Object "me" + quid "37EF65F3038D" + collaborators (list link_list + (object Link + quid "37EF65FA0030" + supplier "$UNNAMED$0" + quidu "37EF65F10376" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF65FA0031" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF980D0264")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$1" + quid "37EF662701A7" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "center" + quid "37EF665403A1" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @2 + logical_models (list unit_reference_list + (object Object "me" + quid "37EF67F20270" + collaborators (list link_list + (object Link + quid "37EF68360250" + supplier "$UNNAMED$2" + quidu "380423CD001B" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF68360251" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF985E00E4")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$2" + quid "37EF6807037E" + collaborators (list link_list + (object Link + quid "37EF6A9800F8" + supplier "leftTop" + quidu "37EF6A5F01B4" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF6A9800F9" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6A9F0333" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF906802C4"))) + (object Link + quid "37EF6AA6022F" + supplier "rightBottom" + quidu "37EF6A630250" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF6AA60230" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6AAC0101" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37DF906802C4"))) + (object Link + quid "37EF6AB600A1" + supplier "$UNNAMED$3" + quidu "380423CD002C" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawRectangle (Point, Point, Color)" + quid "37EF6AB600A2" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 5 + quidu "37EF6AB90330")))) + class "Rectangle" + quidu "37DF953C018B" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$3" + quid "37EF682C0205" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "leftTop" + quid "37EF6A5F01B4" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE) + (object Object "rightBottom" + quid "37EF6A630250" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @3 + logical_models (list unit_reference_list + (object Object "me" + quid "37EF6C2301DC" + collaborators (list link_list + (object Link + quid "37EF6C43011A" + supplier "$UNNAMED$4" + quidu "380423CD0035" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF6C43011B" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF988A0322")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$4" + quid "37EF6C35039B" + collaborators (list link_list + (object Link + quid "37EF6DC3005E" + supplier "$UNNAMED$5" + quidu "380423CD0044" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getItem (int)" + quid "37EF6DC3005F" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DFA36100BF"))) + (object Link + quid "37EF6DF000A9" + supplier "$UNNAMED$6" + quidu "380423CD0047" + supplier_containment "By Value" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "getx ( )" + quid "37EF6DF000AA" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6DF503C7" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DF906802C4"))) + (object Link + quid "37EF6DFB0055" + supplier "$UNNAMED$7" + quidu "380423CD0045" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawLine (int, int, int, int, Color)" + quid "37EF6DFB0056" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37EF6E02033A")))) + class "Line" + quidu "37DF932C0240" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$5" + quid "37EF6D8A0020" + class "pList" + quidu "37DF8F3F0028" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$7" + quid "37EF6DA0034D" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$6" + quid "37EF6DAD03A6" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @4 + logical_models (list unit_reference_list + (object Object "me" + quid "3801824E03B5" + collaborators (list link_list + (object Link + quid "3801826B0168" + supplier "$UNNAMED$8" + quidu "380423CD004D" + messages (list Messages + (object Message "draw (Graphics &)" + quid "3801826B0169" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37F99D7600EE")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$8" + quid "38018263038D" + collaborators (list link_list + (object Link + quid "3801828D010D" + supplier "$UNNAMED$9" + quidu "380423CD005C" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getItem (int)" + quid "3801828D010E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DFA36100BF") + (object Message "isEmpty ( )" + quid "380182DF0219" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DFA18900CB"))) + (object Link + quid "380182A4003D" + supplier "$UNNAMED$10" + quidu "380423CD005D" + supplier_containment "By Value" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "getFigure" + quid "380182A4003E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + Operation "getFigure ( )" + quidu "380347120088"))) + (object Link + quid "380182C7026F" + supplier "$UNNAMED$11" + quidu "380423CD005E" + supplier_containment "By Reference" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "draw (Graphics &)" + quid "380182C70270" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37DFA74202B2")))) + class "ComplexFigure" + quidu "37F99CFD01EE" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$9" + quid "3801827B0002" + class "FList" + quidu "37F99D2800A6" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$10" + quid "3801829C03CB" + class "FigureHolder" + quidu "37DF997101A8" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$11" + quid "380182BF0303" + class "Figure" + quidu "37DF9AF80330" + persistence "Transient" + multi FALSE))) + (object Mechanism @5 + logical_models (list unit_reference_list + (object Object "me" + quid "380184DD03DF" + collaborators (list link_list + (object Link + quid "380184F5018B" + supplier "$UNNAMED$12" + quidu "380423CD0064" + messages (list Messages + (object Message "add(Figure *)" + quid "380184F5018C" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + Operation "add (FigureHolder)" + quidu "38034EBD012B")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$12" + quid "380184EE022B" + collaborators (list link_list + (object Link + quid "3801853C013D" + supplier "$UNNAMED$13" + quidu "380423CD006E" + supplier_containment "By Reference" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "new FigureHolder(Figure*)" + quid "3801853C013E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1))) + (object Link + quid "380185590243" + supplier "$UNNAMED$14" + quidu "380423CD006F" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (int, T)" + quid "380185590244" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DFA0890217") + (object Message "getSize ( )" + quid "3801856300FD" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DFA30803CF")))) + class "ComplexFigure" + quidu "37F99CFD01EE" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$13" + quid "3801853601CA" + class "FigureHolder" + quidu "37DF997101A8" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$14" + quid "380185540245" + class "FList" + quidu "37F99D2800A6" + persistence "Transient" + multi FALSE)))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37DF92F000DB" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 38 + items (list diagram_item_list + (object ClassView "Class" "Point" @6 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1776, 864) + label (object ItemLabel + Parent_View @6 + location (1672, 707) + nlines 2 + max_width 240 + justify 0 + label "Point") + quidu "37DF8F130133" + compartment (object Compartment + Parent_View @6 + location (1710, 770) + anchor 2 + nlines 6 + max_width 153 + justify 0) + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "ParameterizedClass" "List" @7 + IncludeAttribute TRUE + IncludeOperation TRUE + location (576, 480) + label (object ItemLabel + Parent_View @7 + location (460, 305) + nlines 2 + max_width 271 + justify 0 + label "List") + quidu "37DF8F3C0255" + compartment (object Compartment + Parent_View @7 + location (460, 368) + anchor 2 + nlines 7 + max_width 259 + justify 0) + width 394 + height 514 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "pList" @8 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1376, 352) + label (object ItemLabel + Parent_View @8 + location (1272, 268) + nlines 2 + max_width 240 + justify 0 + label "pList") + quidu "37DF8F3F0028" + annotation 8 + autoResize TRUE) + (object UsesView "" @9 + quidu "37DF92E00345" + client @8 + supplier @6 + line_style 0) + (object ClassView "Class" "FigureHolder" @10 + IncludeAttribute TRUE + IncludeOperation TRUE + location (848, 1408) + label (object ItemLabel + Parent_View @10 + location (696, 1324) + nlines 2 + max_width 358 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + compartment (object Compartment + Parent_View @10 + location (696, 1387) + anchor 2 + nlines 2 + max_width 347 + justify 0) + width 520 + annotation 8 + autoResize TRUE) + (object InstantiateView "" @11 + quidu "37DF9A2F02EB" + client @8 + supplier @7 + line_style 0) + (object ClassView "Class" "Figure" @12 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1632, 1408) + label (object ItemLabel + Parent_View @12 + location (1518, 1223) + nlines 2 + max_width 267 + justify 0 + label "Figure") + quidu "37DF9AF80330" + compartment (object Compartment + Parent_View @12 + location (1517, 1286) + anchor 2 + nlines 6 + max_width 256 + justify 0) + width 388 + height 542 + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @13 + label (object ItemLabel + Parent_View @13 + location (1254, 1408) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @10 + supplier @12 + line_style 0) + (object ClassView "ParameterizedClass" "Node" @14 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1088, 960) + label (object ItemLabel + Parent_View @14 + location (979, 876) + nlines 2 + max_width 252 + justify 0 + label "Node") + quidu "37F1D6AF034C" + compartment (object Compartment + Parent_View @14 + location (979, 939) + anchor 2 + nlines 2 + max_width 241 + justify 0) + width 366 + annotation 8 + autoResize TRUE) + (object HasView "next" @15 + label (object ItemLabel + Parent_View @15 + location (1419, 1058) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "next") + quidu "37F1D767033D" + client @14 + supplier @14 + vertices (list Points + (1186, 1040) + (1293, 1134) + (1453, 1037) + (1359, 943) + (1244, 952)) + line_style 0) + (object HasView "head" @16 + label (object ItemLabel + Parent_View @16 + location (822, 749) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "head") + quidu "37F1D703039D" + client @7 + supplier @14 + line_style 0) + (object ClassView "InstantiatedClass" "FList" @17 + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 1120) + label (object ItemLabel + Parent_View @17 + location (168, 1036) + nlines 2 + max_width 240 + justify 0 + label "FList") + quidu "37F99D2800A6" + annotation 8 + autoResize TRUE) + (object InstantiateView "" @18 + quidu "37F99D490053" + client @17 + supplier @7 + line_style 0) + (object UsesView "" @19 + quidu "37F9A22C0124" + client @17 + supplier @10 + line_style 0))) + (object ClassDiagram "Figures" + quid "37DF931D0162" + title "Figures" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 231 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Circle" @20 + IncludeAttribute TRUE + IncludeOperation TRUE + location (496, 832) + label (object ItemLabel + Parent_View @20 + location (378, 675) + nlines 2 + max_width 274 + justify 0 + label "Circle") + quidu "37DF932402C1" + compartment (object Compartment + Parent_View @20 + location (378, 738) + anchor 2 + nlines 6 + max_width 272 + justify 0) + width 398 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Line" @21 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1856, 736) + label (object ItemLabel + Parent_View @21 + location (1718, 579) + nlines 2 + max_width 325 + justify 0 + label "Line") + quidu "37DF932C0240" + compartment (object Compartment + Parent_View @21 + location (1718, 642) + anchor 2 + nlines 6 + max_width 322 + justify 0) + width 472 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "pList" @22 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1792, 1264) + label (object ItemLabel + Parent_View @22 + location (1688, 1180) + nlines 2 + max_width 240 + justify 0 + label "pList") + quidu "37DF8F3F0028" + annotation 8 + autoResize TRUE) + (object HasView "myPoints" @23 + label (object ItemLabel + Parent_View @23 + location (1820, 1053) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myPoints") + quidu "37DF933B01A1" + client @21 + supplier @22 + line_style 0) + (object ClassView "Class" "Rectangle" @24 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1232, 784) + label (object ItemLabel + Parent_View @24 + location (1078, 627) + nlines 2 + max_width 364 + justify 0 + label "Rectangle") + quidu "37DF953C018B" + compartment (object Compartment + Parent_View @24 + location (1078, 690) + anchor 2 + nlines 6 + max_width 362 + justify 0) + width 528 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Figure" @25 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1232, 272) + label (object ItemLabel + Parent_View @25 + location (1118, 87) + nlines 2 + max_width 267 + justify 0 + label "Figure") + quidu "37DF9AF80330" + compartment (object Compartment + Parent_View @25 + location (1117, 150) + anchor 2 + nlines 6 + max_width 256 + justify 0) + width 388 + height 542 + annotation 8 + autoResize TRUE) + (object InheritView "" @26 + quidu "37DFA70D039C" + client @21 + supplier @25 + line_style 0) + (object InheritView "" @27 + quidu "37DFA7130098" + client @20 + supplier @25 + line_style 0) + (object InheritView "" @28 + quidu "37DFA71601DC" + client @24 + supplier @25 + line_style 0) + (object ClassView "Class" "Point" @29 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1264, 1456) + label (object ItemLabel + Parent_View @29 + location (1160, 1299) + nlines 2 + max_width 240 + justify 0 + label "Point") + quidu "37DF8F130133" + compartment (object Compartment + Parent_View @29 + location (1198, 1362) + anchor 2 + nlines 6 + max_width 153 + justify 0) + height 460 + annotation 8 + autoResize TRUE) + (object UsesView "" @30 + quidu "37DF92E00345" + client @22 + supplier @29 + line_style 0) + (object HasView "center" @31 + label (object ItemLabel + Parent_View @31 + location (881, 1134) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "center") + quidu "37EF663C034C" + client @20 + supplier @29 + line_style 0) + (object ClassView "Class" "Graphics" @32 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2064, 240) + label (object ItemLabel + Parent_View @32 + location (1917, 78) + nlines 2 + max_width 346 + justify 0 + label "Graphics") + quidu "37EF661102A0" + compartment (object Compartment + Parent_View @32 + location (1917, 141) + anchor 2 + nlines 5 + max_width 344 + justify 0) + width 502 + height 476 + annotation 8 + autoResize TRUE) + (object UsesView "" @33 + quidu "37F1CF5801CE" + client @25 + supplier @32 + line_style 0) + (object ClassView "Class" "FigureHolder" @34 + IncludeAttribute TRUE + IncludeOperation TRUE + location (528, 192) + label (object ItemLabel + Parent_View @34 + location (376, 108) + nlines 2 + max_width 358 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + compartment (object Compartment + Parent_View @34 + location (376, 171) + anchor 2 + nlines 2 + max_width 347 + justify 0) + width 520 + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @35 + label (object ItemLabel + Parent_View @35 + location (897, 220) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @34 + supplier @25 + line_style 0) + (object HasView "leftTop" @36 + label (object ItemLabel + Parent_View @36 + location (1250, 1127) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "leftTop") + quidu "37F9AC500272" + client @24 + supplier @29 + line_style 0) + (object HasView "rightBottom" @37 + label (object ItemLabel + Parent_View @37 + location (1397, 1096) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "rightBottom") + quidu "37F9AC7E037C" + client @24 + supplier @29 + vertices (list Points + (1300, 937) + (1424, 1140) + (1326, 1231)) + line_style 0) + (object UsesView "" @38 + quidu "3801921A032E" + client @32 + supplier @29 + vertices (list Points + (2079, 438) + (2206, 1422) + (1413, 1446)) + line_style 0))) + (object ClassDiagram "ComplexFigure" + quid "37F99CA70321" + title "ComplexFigure" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Figure" @39 + IncludeAttribute TRUE + IncludeOperation TRUE + location (800, 272) + label (object ItemLabel + Parent_View @39 + location (696, 188) + nlines 2 + max_width 240 + justify 0 + label "Figure") + quidu "37DF9AF80330" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "FigureHolder" @40 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1536, 224) + label (object ItemLabel + Parent_View @40 + location (1432, 140) + nlines 2 + max_width 240 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @41 + label (object ItemLabel + Parent_View @41 + location (1162, 248) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @40 + supplier @39 + line_style 0) + (object ClassView "ParameterizedClass" "List" @42 + IncludeAttribute TRUE + IncludeOperation TRUE + location (944, 832) + label (object ItemLabel + Parent_View @42 + location (840, 748) + nlines 2 + max_width 240 + justify 0 + label "List") + quidu "37DF8F3C0255" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "ComplexFigure" @43 + IncludeAttribute TRUE + IncludeOperation TRUE + location (240, 416) + label (object ItemLabel + Parent_View @43 + location (136, 332) + nlines 2 + max_width 240 + justify 0 + label "ComplexFigure") + quidu "37F99CFD01EE" + annotation 8 + autoResize TRUE) + (object InheritView "" @44 + quidu "37F99D09001F" + client @43 + supplier @39 + line_style 0) + (object ClassView "InstantiatedClass" "FList" @45 + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 976) + label (object ItemLabel + Parent_View @45 + location (168, 892) + nlines 2 + max_width 240 + justify 0 + label "FList") + quidu "37F99D2800A6" + annotation 8 + autoResize TRUE) + (object InstantiateView "" @46 + quidu "37F99D490053" + client @45 + supplier @42 + line_style 0) + (object HasView "myFList" @47 + label (object ItemLabel + Parent_View @47 + location (257, 700) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFList") + quidu "37F99D4F0192" + client @43 + supplier @45 + line_style 0))) + (object InteractionDiagram "draw circle" + mechanism_ref @1 + quid "37EF65EE03C2" + title "draw circle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 37 + origin_y 0 + items (list diagram_item_list + (object InterObjView "$UNNAMED$0" @48 + location (688, 224) + quidu "37EF65F10376" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @49 + location (688, 352) + InterObjView @48 + height 344 + y_coord 284 + Nested FALSE)) + (object InterObjView "me" @50 + location (208, 224) + label (object ItemLabel + Parent_View @50 + location (208, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF65F3038D" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @51 + location (208, 352) + InterObjView @50 + height 404 + y_coord 344 + Nested FALSE)) + (object InterMessView "" @52 + location (0, 352) + label (object SegLabel @53 + Parent_View @52 + location (448, 308) + quidu "37EF65FA0031" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @50 + supplier @48 + Focus_Src @51 + Focus_Entry @49 + origin (224, 352) + terminus (672, 352) + ordinal 0) + (object InterObjView "$UNNAMED$1" @54 + location (1536, 224) + quidu "37EF662701A7" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @55 + location (1536, 576) + InterObjView @54 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "center" @56 + location (1184, 224) + label (object ItemLabel + Parent_View @56 + location (1184, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "center") + quidu "37EF665403A1" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @57 + location (1184, 384) + InterObjView @56 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @58 + location (1184, 480) + InterObjView @56 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @59 + location (0, 384) + label (object SegLabel @60 + Parent_View @59 + location (936, 340) + quidu "37EF666F00BC" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @48 + supplier @56 + Focus_Src @49 + Focus_Entry @57 + origin (704, 384) + terminus (1168, 384) + ordinal 1) + (object InterMessView "" @61 + location (0, 480) + label (object SegLabel @62 + Parent_View @61 + location (936, 436) + quidu "37EF667303D8" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @48 + supplier @56 + Focus_Src @49 + Focus_Entry @58 + origin (704, 480) + terminus (1168, 480) + ordinal 2) + (object InterMessView "" @63 + location (0, 576) + label (object SegLabel @64 + Parent_View @63 + location (1112, 532) + quidu "37EF667A0306" + anchor_loc 1 + nlines 1 + max_width 541 + justify 0 + label "drawCircle (Point, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @48 + supplier @54 + Focus_Src @49 + Focus_Entry @55 + origin (704, 576) + terminus (1520, 576) + ordinal 3))) + (object ObjectDiagram "draw circle" + mechanism_ref @1 + quid "37EF66AE0346" + title "draw circle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @65 + location (320, 240) + label (object ItemLabel + Parent_View @65 + location (216, 156) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF65F3038D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "center" @66 + location (544, 912) + label (object ItemLabel + Parent_View @66 + location (440, 828) + nlines 2 + max_width 240 + justify 0 + label "center") + quidu "37EF665403A1" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$0" @67 + location (1136, 368) + quidu "37EF65F10376" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.247765 + y_offset 0.252205) + (object ObjectView "$UNNAMED$1" @68 + location (1552, 896) + quidu "37EF662701A7" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset -0.080000 + y_offset 0.110000) + (object LinkView "" @69 + quidu "37EF666F00BB" + client @67 + supplier @66 + line_style 0) + (object MessView "" @70 + location (881, 663) + label (object SegLabel @71 + Parent_View @70 + location (912, 739) + quidu "37EF666F00BC" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @72 + Parent_View @70 + location (912, 696) + quidu "37EF667303D8" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @69 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (924, 622) + terminus (838, 704)) + (object LinkView "" @73 + quidu "37EF667A0305" + client @67 + supplier @68 + line_style 0) + (object MessView "" @74 + location (1364, 587) + label (object SegLabel @75 + Parent_View @74 + location (1374, 560) + quidu "37EF667A0306" + anchor_loc 1 + nlines 1 + max_width 551 + justify 0 + label "drawCircle (Point, int, Color)" + pctDist 0.366667 + height 26 + orientation 0) + object_arc @73 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1327, 540) + terminus (1401, 634)) + (object LinkView "" @76 + quidu "37EF65FA0030" + client @65 + supplier @67 + line_style 0) + (object MessView "" @77 + location (728, 259) + label (object SegLabel @78 + Parent_View @77 + location (734, 216) + quidu "37EF65FA0031" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @76 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (669, 250) + terminus (787, 268)))) + (object InteractionDiagram "draw rectangle" + mechanism_ref @2 + quid "37EF67EB0071" + title "draw rectangle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @79 + location (176, 224) + label (object ItemLabel + Parent_View @79 + location (176, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF67F20270" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @80 + location (176, 320) + InterObjView @79 + height 532 + y_coord 472 + Nested FALSE)) + (object InterObjView "$UNNAMED$2" @81 + location (592, 224) + quidu "37EF6807037E" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @82 + location (592, 320) + InterObjView @81 + height 472 + y_coord 412 + Nested FALSE)) + (object InterObjView "$UNNAMED$3" @83 + location (1728, 224) + quidu "37EF682C0205" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @84 + location (1728, 672) + InterObjView @83 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "leftTop" @85 + location (992, 224) + label (object ItemLabel + Parent_View @85 + location (992, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "leftTop") + quidu "37EF6A5F01B4" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @86 + location (992, 368) + InterObjView @85 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @87 + location (992, 448) + InterObjView @85 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "rightBottom" @88 + location (1392, 224) + label (object ItemLabel + Parent_View @88 + location (1392, 224) + anchor_loc 1 + nlines 2 + max_width 363 + justify 0 + label "rightBottom") + quidu "37EF6A630250" + width 381 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @89 + location (1392, 544) + InterObjView @88 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @90 + location (1392, 608) + InterObjView @88 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @91 + location (0, 320) + label (object SegLabel @92 + Parent_View @91 + location (384, 276) + quidu "37EF68360251" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @79 + supplier @81 + Focus_Src @80 + Focus_Entry @82 + origin (192, 320) + terminus (576, 320) + ordinal 0) + (object InterMessView "" @93 + location (0, 368) + label (object SegLabel @94 + Parent_View @93 + location (792, 324) + quidu "37EF6A9800F9" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @81 + supplier @85 + Focus_Src @82 + Focus_Entry @86 + origin (608, 368) + terminus (976, 368) + ordinal 1) + (object InterMessView "" @95 + location (0, 448) + label (object SegLabel @96 + Parent_View @95 + location (792, 404) + quidu "37EF6A9F0333" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @81 + supplier @85 + Focus_Src @82 + Focus_Entry @87 + origin (608, 448) + terminus (976, 448) + ordinal 2) + (object InterMessView "" @97 + location (0, 544) + label (object SegLabel @98 + Parent_View @97 + location (992, 500) + quidu "37EF6AA60230" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @81 + supplier @88 + Focus_Src @82 + Focus_Entry @89 + origin (608, 544) + terminus (1376, 544) + ordinal 3) + (object InterMessView "" @99 + location (0, 608) + label (object SegLabel @100 + Parent_View @99 + location (992, 564) + quidu "37EF6AAC0101" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @81 + supplier @88 + Focus_Src @82 + Focus_Entry @90 + origin (608, 608) + terminus (1376, 608) + ordinal 4) + (object InterMessView "" @101 + location (0, 672) + label (object SegLabel @102 + Parent_View @101 + location (1160, 628) + quidu "37EF6AB600A2" + anchor_loc 1 + nlines 1 + max_width 670 + justify 0 + label "drawRectangle (Point, Point, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @81 + supplier @83 + Focus_Src @82 + Focus_Entry @84 + origin (608, 672) + terminus (1712, 672) + ordinal 5))) + (object ObjectDiagram "draw rectangle" + mechanism_ref @2 + quid "37EF6B8800D5" + title "draw rectangle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @103 + location (208, 544) + label (object ItemLabel + Parent_View @103 + location (104, 460) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF67F20270" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$2" @104 + location (864, 192) + quidu "37EF6807037E" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$3" @105 + location (1552, 608) + quidu "37EF682C0205" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "leftTop" @106 + location (272, 1248) + label (object ItemLabel + Parent_View @106 + location (168, 1164) + nlines 2 + max_width 240 + justify 0 + label "leftTop") + quidu "37EF6A5F01B4" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "rightBottom" @107 + location (992, 1024) + label (object ItemLabel + Parent_View @107 + location (888, 940) + nlines 2 + max_width 240 + justify 0 + label "rightBottom") + quidu "37EF6A630250" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @108 + quidu "37EF68360250" + client @103 + supplier @104 + line_style 0) + (object MessView "" @109 + location (547, 312) + label (object SegLabel @110 + Parent_View @109 + location (528, 273) + quidu "37EF68360251" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @108 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (494, 339) + terminus (600, 285)) + (object LinkView "" @111 + quidu "37EF6A9800F8" + client @104 + supplier @106 + line_style 0) + (object MessView "" @112 + location (607, 743) + label (object SegLabel @113 + Parent_View @112 + location (678, 841) + quidu "37EF6A9800F9" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.952982 + height 109 + orientation 0) + label (object SegLabel @114 + Parent_View @112 + location (678, 798) + quidu "37EF6A9F0333" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.632454 + height 89 + orientation 0) + object_arc @111 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (635, 691) + terminus (579, 795)) + (object LinkView "" @115 + quidu "37EF6AA6022F" + client @104 + supplier @107 + line_style 0) + (object MessView "" @116 + location (972, 603) + label (object SegLabel @117 + Parent_View @116 + location (1016, 553) + quidu "37EF6AA60230" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @118 + Parent_View @116 + location (1016, 596) + quidu "37EF6AAC0101" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @115 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (963, 544) + terminus (981, 662)) + (object LinkView "" @119 + quidu "37EF6AB600A1" + client @104 + supplier @105 + line_style 0) + (object MessView "" @120 + location (1235, 366) + label (object SegLabel @121 + Parent_View @120 + location (1257, 329) + quidu "37EF6AB600A2" + anchor_loc 1 + nlines 1 + max_width 674 + justify 0 + label "drawRectangle (Point, Point, Color)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @119 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1184, 335) + terminus (1286, 397)))) + (object InteractionDiagram "draw line" + mechanism_ref @3 + quid "37EF6C1A0360" + title "draw line" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @122 + location (160, 224) + label (object ItemLabel + Parent_View @122 + location (160, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF6C2301DC" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @123 + location (160, 320) + InterObjView @122 + height 612 + y_coord 552 + Nested FALSE)) + (object InterObjView "$UNNAMED$4" @124 + location (512, 224) + quidu "37EF6C35039B" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @125 + location (512, 320) + InterObjView @124 + height 552 + y_coord 492 + Nested FALSE)) + (object InterObjView "$UNNAMED$5" @126 + location (1168, 224) + quidu "37EF6D8A0020" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @127 + location (1168, 448) + InterObjView @126 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$6" @128 + location (1504, 224) + quidu "37EF6DAD03A6" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @129 + location (1504, 576) + InterObjView @128 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @130 + location (1504, 672) + InterObjView @128 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$7" @131 + location (832, 224) + quidu "37EF6DA0034D" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @132 + location (832, 752) + InterObjView @131 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @133 + location (0, 320) + label (object SegLabel @134 + Parent_View @133 + location (336, 276) + quidu "37EF6C43011B" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @122 + supplier @124 + Focus_Src @123 + Focus_Entry @125 + origin (176, 320) + terminus (496, 320) + ordinal 0) + (object InterMessView "" @135 + location (0, 448) + label (object SegLabel @136 + Parent_View @135 + location (840, 404) + quidu "37EF6DC3005F" + anchor_loc 1 + nlines 1 + max_width 203 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + client @124 + supplier @126 + Focus_Src @125 + Focus_Entry @127 + origin (528, 448) + terminus (1152, 448) + ordinal 1) + (object InterMessView "" @137 + location (0, 576) + label (object SegLabel @138 + Parent_View @137 + location (1008, 532) + quidu "37EF6DF000AA" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @124 + supplier @128 + Focus_Src @125 + Focus_Entry @129 + origin (528, 576) + terminus (1488, 576) + ordinal 2) + (object InterMessView "" @139 + location (0, 672) + label (object SegLabel @140 + Parent_View @139 + location (1008, 628) + quidu "37EF6DF503C7" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @124 + supplier @128 + Focus_Src @125 + Focus_Entry @130 + origin (528, 672) + terminus (1488, 672) + ordinal 3) + (object InterMessView "" @141 + location (0, 752) + label (object SegLabel @142 + Parent_View @141 + location (672, 708) + quidu "37EF6DFB0056" + anchor_loc 1 + nlines 1 + max_width 525 + justify 0 + label "drawLine (int, int, int, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @124 + supplier @131 + Focus_Src @125 + Focus_Entry @132 + origin (528, 752) + terminus (816, 752) + ordinal 4))) + (object ObjectDiagram "draw line" + mechanism_ref @3 + quid "37EF6E46012F" + title "draw line" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @143 + location (208, 1072) + label (object ItemLabel + Parent_View @143 + location (104, 988) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF6C2301DC" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$4" @144 + location (864, 224) + quidu "37EF6C35039B" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$5" @145 + location (784, 848) + quidu "37EF6D8A0020" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$7" @146 + location (1600, 560) + quidu "37EF6DA0034D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$6" @147 + location (1312, 912) + quidu "37EF6DAD03A6" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @148 + quidu "37EF6C43011A" + client @143 + supplier @144 + line_style 0) + (object MessView "" @149 + location (503, 619) + label (object SegLabel @150 + Parent_View @149 + location (422, 528) + quidu "37EF6C43011B" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.683788 + height 122 + orientation 0) + object_arc @148 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (466, 665) + terminus (540, 573)) + (object LinkView "" @151 + quidu "37EF6DC3005E" + client @144 + supplier @145 + line_style 0) + (object MessView "" @152 + location (910, 565) + label (object SegLabel @153 + Parent_View @152 + location (1004, 700) + quidu "37EF6DC3005F" + anchor_loc 1 + nlines 1 + max_width 244 + justify 0 + label "getItem (int)" + pctDist 1.535977 + height 109 + orientation 0) + DataFlowView @154 + object_arc @151 + pctDist 0.530325 + height 90 + orientation 0 + dir 1 + origin (917, 506) + terminus (903, 624)) + (object DataFlowView "" @154 + label (object SegLabel @155 + Parent_View @154 + location (855, 655) + anchor_loc 2 + nlines 1 + max_width 108 + justify 2 + label ":Point" + pctDist -0.300000 + height 0 + orientation 1) + dir -1 + height 45 + MessView @152) + (object LinkView "" @156 + quidu "37EF6DF000A9" + client @144 + supplier @147 + line_style 0) + (object MessView "" @157 + location (1115, 528) + label (object SegLabel @158 + Parent_View @157 + location (1153, 461) + quidu "37EF6DF000AA" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @159 + Parent_View @157 + location (1153, 504) + quidu "37EF6DF503C7" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @156 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1082, 478) + terminus (1148, 578)) + (object LinkView "" @160 + quidu "37EF6DFB0055" + client @144 + supplier @146 + line_style 0) + (object MessView "" @161 + location (1259, 356) + label (object SegLabel @162 + Parent_View @161 + location (1278, 316) + quidu "37EF6DFB0056" + anchor_loc 1 + nlines 1 + max_width 566 + justify 0 + label "drawLine (int, int, int, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @160 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1204, 331) + terminus (1314, 381)))) + (object InteractionDiagram "ComplexDrawing" + mechanism_ref @4 + quid "380182470224" + title "ComplexDrawing" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @163 + location (432, 224) + label (object ItemLabel + Parent_View @163 + location (432, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "3801824E03B5" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @164 + location (432, 400) + InterObjView @163 + height 660 + y_coord 600 + Nested FALSE)) + (object InterObjView "$UNNAMED$8" @165 + location (768, 224) + quidu "38018263038D" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @166 + location (768, 400) + InterObjView @165 + height 600 + y_coord 540 + Nested FALSE)) + (object InterObjView "$UNNAMED$9" @167 + location (1104, 224) + quidu "3801827B0002" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @168 + location (1104, 464) + InterObjView @167 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @169 + location (1104, 592) + InterObjView @167 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$10" @170 + location (1440, 224) + quidu "3801829C03CB" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @171 + location (1440, 736) + InterObjView @170 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$11" @172 + location (1776, 224) + quidu "380182BF0303" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @173 + location (1776, 880) + InterObjView @172 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @174 + location (0, 400) + label (object SegLabel @175 + Parent_View @174 + location (600, 356) + quidu "3801826B0169" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @163 + supplier @165 + Focus_Src @164 + Focus_Entry @166 + origin (448, 400) + terminus (752, 400) + ordinal 0) + (object InterMessView "" @176 + location (0, 592) + label (object SegLabel @177 + Parent_View @176 + location (936, 548) + quidu "3801828D010E" + anchor_loc 1 + nlines 1 + max_width 137 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + client @165 + supplier @167 + Focus_Src @166 + Focus_Entry @169 + origin (784, 592) + terminus (1088, 592) + ordinal 2) + (object InterMessView "" @178 + location (0, 736) + label (object SegLabel @179 + Parent_View @178 + location (1104, 692) + quidu "380182A4003E" + anchor_loc 1 + nlines 1 + max_width 53 + justify 0 + label "getFigure" + pctDist 0.500000 + height 45 + orientation 0) + client @165 + supplier @170 + Focus_Src @166 + Focus_Entry @171 + origin (784, 736) + terminus (1424, 736) + ordinal 3) + (object InterMessView "" @180 + location (0, 880) + label (object SegLabel @181 + Parent_View @180 + location (1272, 836) + quidu "380182C70270" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @165 + supplier @172 + Focus_Src @166 + Focus_Entry @173 + origin (784, 880) + terminus (1760, 880) + ordinal 4) + (object InterMessView "" @182 + location (0, 464) + label (object SegLabel @183 + Parent_View @182 + location (936, 420) + quidu "380182DF0219" + anchor_loc 1 + nlines 1 + max_width 169 + justify 0 + label "isEmpty ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @165 + supplier @167 + Focus_Src @166 + Focus_Entry @168 + origin (784, 464) + terminus (1088, 464) + ordinal 1))) + (object ObjectDiagram "ComplexDrawing" + mechanism_ref @4 + quid "3801832902AC" + title "ComplexDrawing" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @184 + location (240, 336) + label (object ItemLabel + Parent_View @184 + location (136, 252) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "3801824E03B5" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$8" @185 + location (896, 384) + quidu "38018263038D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$9" @186 + location (1584, 400) + quidu "3801827B0002" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$10" @187 + location (352, 928) + quidu "3801829C03CB" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$11" @188 + location (1120, 928) + quidu "380182BF0303" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @189 + quidu "3801826B0168" + client @184 + supplier @185 + line_style 0) + (object MessView "" @190 + location (559, 315) + label (object SegLabel @191 + Parent_View @190 + location (563, 271) + quidu "3801826B0169" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @189 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (499, 310) + terminus (619, 320)) + (object LinkView "" @192 + quidu "3801828D010D" + client @185 + supplier @186 + line_style 0) + (object MessView "" @193 + location (1230, 302) + label (object SegLabel @194 + Parent_View @193 + location (1231, 215) + quidu "380182DF0219" + anchor_loc 1 + nlines 1 + max_width 222 + justify 0 + label "isEmpty ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @195 + Parent_View @193 + location (1231, 258) + quidu "3801828D010E" + anchor_loc 1 + nlines 1 + max_width 244 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + DataFlowView @196 + object_arc @192 + pctDist 0.500000 + height 90 + orientation 0 + dir 1 + origin (1170, 301) + terminus (1290, 303)) + (object DataFlowView "" @196 + label (object SegLabel @197 + Parent_View @196 + location (1244, 317) + anchor_loc 3 + nlines 1 + max_width 228 + label "FigureHolder" + pctDist 0.389830 + height 31 + orientation 1) + dir -1 + height 45 + MessView @193) + (object LinkView "" @198 + quidu "380182A4003D" + client @185 + supplier @187 + line_style 0) + (object MessView "" @199 + location (664, 680) + label (object SegLabel @200 + Parent_View @199 + location (696, 711) + quidu "380182A4003E" + anchor_loc 1 + nlines 1 + max_width 203 + justify 0 + label "getFigure" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @198 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (705, 638) + terminus (623, 722)) + (object LinkView "" @201 + quidu "380182C7026F" + client @185 + supplier @188 + line_style 0) + (object MessView "" @202 + location (1047, 633) + label (object SegLabel @203 + Parent_View @202 + location (1281, 602) + quidu "380182C70270" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 1.012802 + height 229 + orientation 0) + object_arc @201 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1024, 578) + terminus (1070, 688)))) + (object InteractionDiagram "addComplex" + mechanism_ref @5 + quid "380184D90090" + title "addComplex" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @204 + location (240, 224) + label (object ItemLabel + Parent_View @204 + location (240, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "380184DD03DF" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @205 + location (240, 352) + InterObjView @204 + height 484 + y_coord 424 + Nested FALSE)) + (object InterObjView "$UNNAMED$12" @206 + location (576, 224) + quidu "380184EE022B" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @207 + location (576, 352) + InterObjView @206 + height 424 + y_coord 364 + Nested FALSE)) + (object InterObjView "$UNNAMED$13" @208 + location (1168, 224) + quidu "3801853601CA" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @209 + location (1168, 384) + InterObjView @208 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$14" @210 + location (1504, 224) + quidu "380185540245" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @211 + location (1504, 528) + InterObjView @210 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @212 + location (1504, 656) + InterObjView @210 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @213 + location (0, 352) + label (object SegLabel @214 + Parent_View @213 + location (408, 308) + quidu "380184F5018C" + anchor_loc 1 + nlines 1 + max_width 225 + justify 0 + label "add(Figure *)" + pctDist 0.500000 + height 45 + orientation 0) + client @204 + supplier @206 + Focus_Src @205 + Focus_Entry @207 + origin (256, 352) + terminus (560, 352) + ordinal 0) + (object InterMessView "" @215 + location (0, 384) + label (object SegLabel @216 + Parent_View @215 + location (872, 340) + quidu "3801853C013E" + anchor_loc 1 + nlines 1 + max_width 191 + justify 0 + label "new FigureHolder(Figure*)" + pctDist 0.500000 + height 45 + orientation 0) + client @206 + supplier @208 + Focus_Src @207 + Focus_Entry @209 + origin (592, 384) + terminus (1152, 384) + ordinal 1) + (object InterMessView "" @217 + location (0, 656) + label (object SegLabel @218 + Parent_View @217 + location (1040, 612) + quidu "380185590244" + anchor_loc 1 + nlines 1 + max_width 147 + justify 0 + label "add (int, T)" + pctDist 0.500000 + height 45 + orientation 0) + client @206 + supplier @210 + Focus_Src @207 + Focus_Entry @212 + origin (592, 656) + terminus (1488, 656) + ordinal 3) + (object InterMessView "" @219 + location (0, 528) + label (object SegLabel @220 + Parent_View @219 + location (1040, 484) + quidu "3801856300FD" + anchor_loc 1 + nlines 1 + max_width 169 + justify 0 + label "getSize ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @206 + supplier @210 + Focus_Src @207 + Focus_Entry @211 + origin (592, 528) + terminus (1488, 528) + ordinal 2))) + (object ObjectDiagram "addComplex" + mechanism_ref @5 + quid "380185700214" + title "addComplex" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @221 + location (320, 240) + label (object ItemLabel + Parent_View @221 + location (216, 156) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "380184DD03DF" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$12" @222 + location (960, 304) + quidu "380184EE022B" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$13" @223 + location (352, 928) + quidu "3801853601CA" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$14" @224 + location (1120, 928) + quidu "380185540245" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @225 + quidu "380184F5018B" + client @221 + supplier @222 + line_style 0) + (object MessView "" @226 + location (634, 227) + label (object SegLabel @227 + Parent_View @226 + location (638, 183) + quidu "380184F5018C" + anchor_loc 1 + nlines 1 + max_width 266 + justify 0 + label "add(Figure *)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @225 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (574, 221) + terminus (694, 233)) + (object LinkView "" @228 + quidu "3801853C013D" + client @222 + supplier @223 + line_style 0) + (object MessView "" @229 + location (695, 640) + label (object SegLabel @230 + Parent_View @229 + location (728, 671) + quidu "3801853C013E" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "new FigureHolder(Figure*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @228 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (736, 597) + terminus (654, 683)) + (object LinkView "" @231 + quidu "380185590243" + client @222 + supplier @224 + line_style 0) + (object MessView "" @232 + location (1084, 603) + label (object SegLabel @233 + Parent_View @232 + location (1252, 520) + quidu "3801856300FD" + anchor_loc 1 + nlines 1 + max_width 209 + justify 0 + label "getSize ( )" + pctDist 0.172332 + height 184 + orientation 0) + label (object SegLabel @234 + Parent_View @232 + location (1252, 563) + quidu "380185590244" + anchor_loc 1 + nlines 1 + max_width 222 + justify 0 + label "add (int, T)" + pctDist 0.519783 + height 172 + orientation 0) + object_arc @231 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1069, 545) + terminus (1099, 661)))))) + (object Class_Category "Graphic" + quid "37DF9D5B01A8" + exportControl "Public" + logical_models (list unit_reference_list + (object Class "Graphics" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Graphic\\Graphics.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Graphic\\Graphics.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37EF661102A0" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3801921A032E" + supplier "Point" + quidu "37DF8F130133")) + abstract TRUE + operations (list Operations + (object Operation "drawCircle" + quid "37EF667C0394" + parameters (list Parameters + (object Parameter "center" + type "Point") + (object Parameter "radius" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436810) + (object Operation "drawRectangle" + quid "37EF6AB90330" + parameters (list Parameters + (object Parameter "leftTop" + type "Point") + (object Parameter "rightBottom" + type "Point") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436812) + (object Operation "drawLine" + quid "37EF6E02033A" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436813) + (object Operation "getBGColor" + quid "38042C9C01AE" + result "Color" + concurrency "Sequential" + opExportControl "Public" + uid 939797852))) + (object Class "DebugGraphics" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Graphic\\DbgGrphc.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose\\Graphic\\DbgGrphc.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37F1CB1903A2" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37F1CB1E0042" + supplier "Graphics" + quidu "37EF661102A0")) + operations (list Operations + (object Operation "drawCircle" + quid "37F1CBF00315" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586296) + (object Operation "drawRectangle" + quid "37F1CC020216" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586297) + (object Operation "drawLine" + quid "37F1CC1500E7" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586298)))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37EF660F027F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Graphics" @235 + IncludeAttribute TRUE + IncludeOperation TRUE + location (816, 320) + label (object ItemLabel + Parent_View @235 + location (712, 236) + nlines 2 + max_width 240 + justify 0 + label "Graphics") + quidu "37EF661102A0" + compartment (object Compartment + Parent_View @235 + location (831, 299) + anchor 2 + nlines 4 + max_width 0 + justify 0) + annotation 8 + autoResize TRUE) + (object ClassView "Class" "DebugGraphics" @236 + IncludeAttribute TRUE + IncludeOperation TRUE + location (352, 752) + label (object ItemLabel + Parent_View @236 + location (248, 668) + nlines 2 + max_width 240 + justify 0 + label "DebugGraphics") + quidu "37F1CB1903A2" + compartment (object Compartment + Parent_View @236 + location (367, 778) + anchor 2 + nlines 3 + max_width 0 + justify 0) + annotation 8 + autoResize TRUE) + (object InheritView "" @237 + quidu "37F1CB1E0042" + client @236 + supplier @235 + line_style 0)))))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37DF8EC001B6" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object CategoryView "Figures" @238 + location (176, 208) + label (object ItemLabel + Parent_View @238 + location (32, 124) + nlines 2 + max_width 288 + justify 0 + label "Figures") + quidu "37DF92E603A8" + width 300 + height 180) + (object CategoryView "Graphic" @239 + location (560, 224) + label (object ItemLabel + Parent_View @239 + location (416, 140) + nlines 2 + max_width 288 + justify 0 + label "Graphic") + quidu "37DF9D5B01A8" + width 300 + height 180))))) + root_subsystem (object SubSystem "Component View" + quid "37DF8EBF026A" + physical_models (list unit_reference_list + (object SubSystem "Figures" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose")) + quid "37DF936E0213" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "37DF9517001F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list))))) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "37DF8EC001CA" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object SubSysView "Figures" @240 + location (336, 832) + label (object ItemLabel + Parent_View @240 + location (192, 763) + nlines 2 + max_width 288 + justify 0 + label "Figures") + quidu "37DF936E0213" + width 300 + height 150))))) + process_structure (object Processes + quid "37DF8EBF026B" + ProcsNDevs (list + (object Process_Diagram "Deployment View" + quid "37DF8EC0018E" + title "Deployment View" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + properties (object Properties + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "roseId" + value "753117540") + (object Attribute + tool "cg" + name "propertyId" + value "809135966") + (object Attribute + tool "cg" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "PrecompiledHeader" + value "") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "CommentWidth" + value 60) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler2.1__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value FALSE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference($limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference($limit)") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler3.0__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "InclusionProtectionSymbol" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value FALSE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateIDLModule" + value FALSE))) + (object Attribute + tool "cg" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value TRUE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")))) + (object Attribute + tool "cg" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value "") + (object Attribute + tool "cg" + name "OperationIsOneWay" + value FALSE) + (object Attribute + tool "cg" + name "Context" + value "") + (object Attribute + tool "cg" + name "Raises" + value ""))) + (object Attribute + tool "cg" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "Ordered" + value TRUE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$supplier") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$relationship") + (object Attribute + tool "cg" + name "SetName" + value "set_$relationship") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "SelectorName" + value "") + (object Attribute + tool "cg" + name "SelectorType" + value "") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedHasRelType" + value ("HasRelTypeSet" 47)) + (object Attribute + tool "cg" + name "HasRelTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass"))) + (object Attribute + tool "cg" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InstanceArguments" + value ""))) + (object Attribute + tool "cg" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$target") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "ContainerGet" + value "$data.get($keys)") + (object Attribute + tool "cg" + name "ContainerSet" + value "$data.set($keys,$value)") + (object Attribute + tool "cg" + name "QualifiedContainer" + value "") + (object Attribute + tool "cg" + name "AssocClassContainer" + value "$supplier *") + (object Attribute + tool "cg" + name "AssocClassInitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$target") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "SetName" + value "set_$target") + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetSetByReference" + value ("QualifiedGetSetByReferenceSet" 2)) + (object Attribute + tool "cg" + name "QualifiedGetSetByReferenceSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_GetSetByReference" + value 2))) + (object Attribute + tool "cg" + name "GenerateQualifiedGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetName" + value "get_$target") + (object Attribute + tool "cg" + name "QualifiedGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineQualifiedGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateQualifiedSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedSetName" + value "set_$target") + (object Attribute + tool "cg" + name "QualifiedSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineQualifiedSet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassDataMember" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassDataMemberName" + value "$target") + (object Attribute + tool "cg" + name "AssocClassDataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "AssocClassDataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "AssocClassDataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "AssocClassGetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GenerateAssocClassGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetName" + value "get_$target") + (object Attribute + tool "cg" + name "AssocClassGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineAssocClassGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassSetName" + value "set_$target") + (object Attribute + tool "cg" + name "AssocClassSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineAssocClassSet" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassForwardReferenceOnly" + value TRUE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedRoleType" + value ("AssocTypeSet" 47)) + (object Attribute + tool "cg" + name "AssocTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE))) + (object Attribute + tool "cg" + name "default__Uses" + value (list Attribute_Set + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "BodyReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE))) + (object Attribute + tool "cg" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "DirectoryIsOnSearchList" + value FALSE) + (object Attribute + tool "cg" + name "PrecompiledHeader" + value ""))) + (object Attribute + tool "DDL" + name "propertyId" + value "809135966") + (object Attribute + tool "DDL" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "DataBase" + value ("DataBaseSet" 800)) + (object Attribute + tool "DDL" + name "DataBaseSet" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ANSI" + value 800) + (object Attribute + tool "DDL" + name "Oracle" + value 801) + (object Attribute + tool "DDL" + name "SQLServer" + value 802) + (object Attribute + tool "DDL" + name "Sybase" + value 803) + (object Attribute + tool "DDL" + name "Watcom" + value 804))) + (object Attribute + tool "DDL" + name "PrimaryKeyColumnName" + value "Id") + (object Attribute + tool "DDL" + name "PrimaryKeyColumnType" + value "NUMBER(5)") + (object Attribute + tool "DDL" + name "ViewName" + value "V_") + (object Attribute + tool "DDL" + name "TableName" + value "T_") + (object Attribute + tool "DDL" + name "InheritSuffix" + value "_V") + (object Attribute + tool "DDL" + name "DropClause" + value FALSE) + (object Attribute + tool "DDL" + name "BaseViews" + value FALSE) + (object Attribute + tool "DDL" + name "DDLScriptFilename" + value "DDL1.SQL"))) + (object Attribute + tool "DDL" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ColumnType" + value "VARCHAR") + (object Attribute + tool "DDL" + name "Length" + value "") + (object Attribute + tool "DDL" + name "NullsOK" + value TRUE) + (object Attribute + tool "DDL" + name "PrimaryKey" + value FALSE) + (object Attribute + tool "DDL" + name "Unique" + value FALSE) + (object Attribute + tool "DDL" + name "CompositeUnique" + value FALSE) + (object Attribute + tool "DDL" + name "CheckConstraint" + value ""))) + (object Attribute + tool "cg" + name "default__Category" + value (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateIDLModule" + value TRUE) + (object Attribute + tool "cg" + name "ModuleName" + value (value Text "")))) + (object Attribute + tool "cg" + name "variabler__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value "") + (object Attribute + tool "cg" + name "OperationIsOneWay" + value FALSE) + (object Attribute + tool "cg" + name "Context" + value "") + (object Attribute + tool "cg" + name "Raises" + value ""))) + (object Attribute + tool "cg" + name "variabler__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "variabler__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE))) + (object Attribute + tool "cg" + name "Klassjäkel__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81)))))) + quid "37DF8EBF026C")) diff --git a/Lab4/circle.cpp b/Lab4/circle.cpp new file mode 100644 index 0000000..0cd3176 --- /dev/null +++ b/Lab4/circle.cpp @@ -0,0 +1,106 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Circle; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Circle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Circle +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Circle.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Circle + + + +Circle::Circle() + //## begin Circle::Circle%.hasinit preserve=no + //## end Circle::Circle%.hasinit + //## begin Circle::Circle%.initialization preserve=yes + //## end Circle::Circle%.initialization +{ + //## begin Circle::Circle%.body preserve=yes + //## end Circle::Circle%.body +} + +Circle::Circle (int x, int y, int r, Color color) + //## begin Circle::Circle%939623931.hasinit preserve=no + //## end Circle::Circle%939623931.hasinit + //## begin Circle::Circle%939623931.initialization preserve=yes + //## end Circle::Circle%939623931.initialization +{ + //## begin Circle::Circle%939623931.body preserve=yes + setColor(color); + center.setx(x); + center.sety(y); + radius=r; + //## end Circle::Circle%939623931.body +} + + +Circle::~Circle() +{ + //## begin Circle::~Circle%.body preserve=yes + //## end Circle::~Circle%.body +} + + + +//## Other Operations (implementation) +void Circle::draw (Graphics &g) +{ + //## begin Circle::draw%937398670.body preserve=yes + g.drawCircle(center, radius, getColor()); + //## end Circle::draw%937398670.body +} + +void Circle::erase (Graphics &g) +{ + //## begin Circle::erase%937398671.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Circle::erase%937398671.body +} + +Figure * Circle::clone () +{ + //## begin Circle::clone%937398683.body preserve=yes + return new Circle(*this); + //## end Circle::clone%937398683.body +} + +// Additional Declarations + //## begin Circle.declarations preserve=yes + //## end Circle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Circle::getColor%939797853.body preserve=no + return color; +//## end Circle::getColor%939797853.body + +//## begin Circle::setColor%939797854.body preserve=no + color=src; + +//## end Circle::setColor%939797854.body + +#endif diff --git a/Lab4/circle.h b/Lab4/circle.h new file mode 100644 index 0000000..b1823ac --- /dev/null +++ b/Lab4/circle.h @@ -0,0 +1,108 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Circle; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Circle.h + +#ifndef Circle_h +#define Circle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.h" +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Circle +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Circle : public Figure //## Inherits: +{ + //## begin Circle.initialDeclarations preserve=yes + //## end Circle.initialDeclarations + + public: + //## Constructors (generated) + Circle(); + + //## Constructors (specified) + //## Operation: Circle%939623931 + Circle (int x, int y, int r, Color color); + + //## Destructor (generated) + ~Circle(); + + + //## Other Operations (specified) + //## Operation: draw%937398670 + void draw (Graphics &g); + + //## Operation: erase%937398671 + void erase (Graphics &g); + + //## Operation: clone%937398683 + Figure * clone (); + + // Additional Public Declarations + //## begin Circle.public preserve=yes + //## end Circle.public + + protected: + // Additional Protected Declarations + //## begin Circle.protected preserve=yes + //## end Circle.protected + + private: + // Additional Private Declarations + //## begin Circle.private preserve=yes + //## end Circle.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Circle::center.has + //## begin Circle::center.has preserve=no private: Point {1 -> 1VO} + Point center; + //## end Circle::center.has + + // Data Members for Class Attributes + + //## Attribute: radius + //## begin Circle::radius.attr preserve=no private: int {U} + int radius; + //## end Circle::radius.attr + + // Additional Implementation Declarations + //## begin Circle.implementation preserve=yes + //## end Circle.implementation + +}; + +//## begin Circle.postscript preserve=yes +//## end Circle.postscript + +// Class Circle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/cmplxfgr.cpp b/Lab4/cmplxfgr.cpp new file mode 100644 index 0000000..4dd48bc --- /dev/null +++ b/Lab4/cmplxfgr.cpp @@ -0,0 +1,87 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComplexFigure; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\CmplxFgr.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// ComplexFigure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\CmplxFgr.h" +//## begin module.additionalDeclarations preserve=yes +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Graphic\Graphics.h" +//## end module.additionalDeclarations + + +// Class ComplexFigure + + +ComplexFigure::ComplexFigure() + //## begin ComplexFigure::ComplexFigure%.hasinit preserve=no + //## end ComplexFigure::ComplexFigure%.hasinit + //## begin ComplexFigure::ComplexFigure%.initialization preserve=yes + //## end ComplexFigure::ComplexFigure%.initialization +{ + //## begin ComplexFigure::ComplexFigure%.body preserve=yes + //## end ComplexFigure::ComplexFigure%.body +} + + +ComplexFigure::~ComplexFigure() +{ + //## begin ComplexFigure::~ComplexFigure%.body preserve=yes + //## end ComplexFigure::~ComplexFigure%.body +} + + + +//## Other Operations (implementation) +void ComplexFigure::draw (Graphics &g) +{ + //## begin ComplexFigure::draw%939104770.body preserve=yes + for(int i = 0; i < myFList.getSize(); i++) + { + FigureHolder fh = myFList.getItem(i); + Figure* f = fh.getFigure(); + f->draw(g); + } + //## end ComplexFigure::draw%939104770.body +} + +void ComplexFigure::erase (Graphics &g) +{ + //## begin ComplexFigure::erase%939104771.body preserve=yes + //## end ComplexFigure::erase%939104771.body +} + +Figure * ComplexFigure::clone () +{ + //## begin ComplexFigure::clone%939104772.body preserve=yes + return new ComplexFigure(*this); + //## end ComplexFigure::clone%939104772.body +} + +void ComplexFigure::add (FigureHolder figure) +{ + //## begin ComplexFigure::add%939734506.body preserve=yes + myFList.add(myFList.getSize(), figure); + //## end ComplexFigure::add%939734506.body +} + +// Additional Declarations + //## begin ComplexFigure.declarations preserve=yes + //## end ComplexFigure.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/cmplxfgr.h b/Lab4/cmplxfgr.h new file mode 100644 index 0000000..fbf0ede --- /dev/null +++ b/Lab4/cmplxfgr.h @@ -0,0 +1,100 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComplexFigure; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\CmplxFgr.h + +#ifndef CmplxFgr_h +#define CmplxFgr_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +// FList +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: ComplexFigure +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class ComplexFigure : public Figure //## Inherits: +{ + //## begin ComplexFigure.initialDeclarations preserve=yes + //## end ComplexFigure.initialDeclarations + + public: + //## Constructors (generated) + ComplexFigure(); + + //## Destructor (generated) + ~ComplexFigure(); + + + //## Other Operations (specified) + //## Operation: draw%939104770 + void draw (Graphics &g); + + //## Operation: erase%939104771 + void erase (Graphics &g); + + //## Operation: clone%939104772 + Figure * clone (); + + //## Operation: add%939734506 + void add (FigureHolder figure); + + // Additional Public Declarations + //## begin ComplexFigure.public preserve=yes + //## end ComplexFigure.public + + protected: + // Additional Protected Declarations + //## begin ComplexFigure.protected preserve=yes + //## end ComplexFigure.protected + + private: + // Additional Private Declarations + //## begin ComplexFigure.private preserve=yes + //## end ComplexFigure.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation ComplexFigure::myFList.has + //## begin ComplexFigure::myFList.has preserve=no public: FList {1 -> 1VO} + FList myFList; + //## end ComplexFigure::myFList.has + + // Additional Implementation Declarations + //## begin ComplexFigure.implementation preserve=yes + //## end ComplexFigure.implementation + +}; + +//## begin ComplexFigure.postscript preserve=yes +//## end ComplexFigure.postscript + +// Class ComplexFigure + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/fgrhlder.cpp b/Lab4/fgrhlder.cpp new file mode 100644 index 0000000..513ea26 --- /dev/null +++ b/Lab4/fgrhlder.cpp @@ -0,0 +1,61 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FigureHolder; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FgrHlder.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// FigureHolder +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FgrHlder.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class FigureHolder + + +FigureHolder::FigureHolder() + //## begin FigureHolder::FigureHolder%.hasinit preserve=no + //## end FigureHolder::FigureHolder%.hasinit + //## begin FigureHolder::FigureHolder%.initialization preserve=yes + //## end FigureHolder::FigureHolder%.initialization +{ + //## begin FigureHolder::FigureHolder%.body preserve=yes + //## end FigureHolder::FigureHolder%.body +} + + +FigureHolder::~FigureHolder() +{ + //## begin FigureHolder::~FigureHolder%.body preserve=yes + //## end FigureHolder::~FigureHolder%.body +} + + + +//## Other Operations (implementation) +Figure * FigureHolder::getFigure () +{ + //## begin FigureHolder::getFigure%939734505.body preserve=yes + return myFigure; + //## end FigureHolder::getFigure%939734505.body +} + +// Additional Declarations + //## begin FigureHolder.declarations preserve=yes + //## end FigureHolder.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/fgrhlder.h b/Lab4/fgrhlder.h new file mode 100644 index 0000000..abaa2e6 --- /dev/null +++ b/Lab4/fgrhlder.h @@ -0,0 +1,94 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FigureHolder; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FgrHlder.h + +#ifndef FgrHlder_h +#define FgrHlder_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: FigureHolder +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class FigureHolder +{ + //## begin FigureHolder.initialDeclarations preserve=yes +public: + FigureHolder(Figure& f) + { + myFigure = f.clone(); + } + //## end FigureHolder.initialDeclarations + + public: + //## Constructors (generated) + FigureHolder(); + + //## Destructor (generated) + ~FigureHolder(); + + + //## Other Operations (specified) + //## Operation: getFigure%939734505 + Figure * getFigure (); + + // Additional Public Declarations + //## begin FigureHolder.public preserve=yes + //## end FigureHolder.public + + protected: + // Additional Protected Declarations + //## begin FigureHolder.protected preserve=yes + //## end FigureHolder.protected + + private: + // Additional Private Declarations + //## begin FigureHolder.private preserve=yes + //## end FigureHolder.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation FigureHolder::myFigure.has + //## begin FigureHolder::myFigure.has preserve=no public: Figure {1 -> 1RO} + Figure *myFigure; + //## end FigureHolder::myFigure.has + + // Additional Implementation Declarations + //## begin FigureHolder.implementation preserve=yes + //## end FigureHolder.implementation + +}; + +//## begin FigureHolder.postscript preserve=yes +//## end FigureHolder.postscript + +// Class FigureHolder + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/figure.cpp b/Lab4/figure.cpp new file mode 100644 index 0000000..ddb9edd --- /dev/null +++ b/Lab4/figure.cpp @@ -0,0 +1,68 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Figure; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Figure + + +Figure::Figure() + //## begin Figure::Figure%.hasinit preserve=no + //## end Figure::Figure%.hasinit + //## begin Figure::Figure%.initialization preserve=yes + //## end Figure::Figure%.initialization +{ + //## begin Figure::Figure%.body preserve=yes + //## end Figure::Figure%.body +} + + +Figure::~Figure() +{ + //## begin Figure::~Figure%.body preserve=yes + //## end Figure::~Figure%.body +} + + + +//## Other Operations (implementation) +Color Figure::getColor () +{ + //## begin Figure::getColor%939623933.body preserve=yes + return color; + //## end Figure::getColor%939623933.body +} + +void Figure::setColor (Color c) +{ + //## begin Figure::setColor%939623934.body preserve=yes + color=c; + //## end Figure::setColor%939623934.body +} + +// Additional Declarations + //## begin Figure.declarations preserve=yes + //## end Figure.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/figure.h b/Lab4/figure.h new file mode 100644 index 0000000..de9b10f --- /dev/null +++ b/Lab4/figure.h @@ -0,0 +1,103 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Figure; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h + +#ifndef Figure_h +#define Figure_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphic\Graphics.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Figure; Abstract +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Graphics { -> } + +class Figure +{ + //## begin Figure.initialDeclarations preserve=yes + //## end Figure.initialDeclarations + + public: + //## Constructors (generated) + Figure(); + + //## Destructor (generated) + ~Figure(); + + + //## Other Operations (specified) + //## Operation: draw%937398679 + virtual void draw (Graphics &g) = 0; + + //## Operation: erase%937398680 + virtual void erase (Graphics &g) = 0; + + //## Operation: clone%937398681 + virtual Figure * clone () = 0; + + //## Operation: getColor%939623933 + Color getColor (); + + //## Operation: setColor%939623934 + void setColor (Color c); + + // Additional Public Declarations + //## begin Figure.public preserve=yes + //## end Figure.public + + protected: + // Additional Protected Declarations + //## begin Figure.protected preserve=yes + //## end Figure.protected + + private: + // Additional Private Declarations + //## begin Figure.private preserve=yes + //## end Figure.private + + private: //## implementation + // Data Members for Class Attributes + + //## Attribute: color + //## begin Figure::color.attr preserve=no private: Color {U} + Color color; + //## end Figure::color.attr + + // Additional Implementation Declarations + //## begin Figure.implementation preserve=yes + //## end Figure.implementation + +}; + +//## begin Figure.postscript preserve=yes +//## end Figure.postscript + +// Class Figure + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/flist.cpp b/Lab4/flist.cpp new file mode 100644 index 0000000..90f68d2 --- /dev/null +++ b/Lab4/flist.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FList; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// FList +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin FList.instantiation preserve=no +template class List< FigureHolder >; +//## end FList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/flist.h b/Lab4/flist.h new file mode 100644 index 0000000..f70868a --- /dev/null +++ b/Lab4/flist.h @@ -0,0 +1,48 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FList; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FList.h + +#ifndef FList_h +#define FList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\List.h" +// FigureHolder +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\FgrHlder.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: FList; Instantiated Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; FigureHolder { -> } + +typedef List< FigureHolder > FList; + +//## begin FList.postscript preserve=yes +//## end FList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/graphic/dbggrphc.cpp b/Lab4/graphic/dbggrphc.cpp new file mode 100644 index 0000000..7da9684 --- /dev/null +++ b/Lab4/graphic/dbggrphc.cpp @@ -0,0 +1,71 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: DebugGraphics; Pseudo Package body +//## Subsystem: Graphic +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Graphic\DbgGrphc.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// DebugGraphics +#include "Graphic\DbgGrphc.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class DebugGraphics + +DebugGraphics::DebugGraphics() + //## begin DebugGraphics::DebugGraphics%.hasinit preserve=no + //## end DebugGraphics::DebugGraphics%.hasinit + //## begin DebugGraphics::DebugGraphics%.initialization preserve=yes + //## end DebugGraphics::DebugGraphics%.initialization +{ + //## begin DebugGraphics::DebugGraphics%.body preserve=yes + //## end DebugGraphics::DebugGraphics%.body +} + + +DebugGraphics::~DebugGraphics() +{ + //## begin DebugGraphics::~DebugGraphics%.body preserve=yes + //## end DebugGraphics::~DebugGraphics%.body +} + + + +//## Other Operations (implementation) +void DebugGraphics::drawCircle () +{ + //## begin DebugGraphics::drawCircle%938586296.body preserve=yes + //## end DebugGraphics::drawCircle%938586296.body +} + +void DebugGraphics::drawRectangle () +{ + //## begin DebugGraphics::drawRectangle%938586297.body preserve=yes + //## end DebugGraphics::drawRectangle%938586297.body +} + +void DebugGraphics::drawLine () +{ + //## begin DebugGraphics::drawLine%938586298.body preserve=yes + //## end DebugGraphics::drawLine%938586298.body +} + +// Additional Declarations + //## begin DebugGraphics.declarations preserve=yes + //## end DebugGraphics.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/graphic/dbggrphc.h b/Lab4/graphic/dbggrphc.h new file mode 100644 index 0000000..3fd9708 --- /dev/null +++ b/Lab4/graphic/dbggrphc.h @@ -0,0 +1,89 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: DebugGraphics; Pseudo Package specification +//## Subsystem: Graphic +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Graphic\DbgGrphc.h + +#ifndef DbgGrphc_h +#define DbgGrphc_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphic\Graphics.h" +//## begin module.additionalDeclarations preserve=yes +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Graphic\DbgGrphc.h" +//## end module.additionalDeclarations + + +//## Class: DebugGraphics +//## Category: Graphic +//## Subsystem: Graphic +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class DebugGraphics : public Graphics //## Inherits: +{ + //## begin DebugGraphics.initialDeclarations preserve=yes + //## end DebugGraphics.initialDeclarations + + public: + //## Constructors (generated) + DebugGraphics(); + + //## Destructor (generated) + ~DebugGraphics(); + + + //## Other Operations (specified) + //## Operation: drawCircle%938586296 + void drawCircle (); + + //## Operation: drawRectangle%938586297 + void drawRectangle (); + + //## Operation: drawLine%938586298 + void drawLine (); + + // Additional Public Declarations + //## begin DebugGraphics.public preserve=yes + //## end DebugGraphics.public + + protected: + // Additional Protected Declarations + //## begin DebugGraphics.protected preserve=yes + //## end DebugGraphics.protected + + private: + // Additional Private Declarations + //## begin DebugGraphics.private preserve=yes + //## end DebugGraphics.private + + private: //## implementation + // Additional Implementation Declarations + //## begin DebugGraphics.implementation preserve=yes + //## end DebugGraphics.implementation + +}; + +//## begin DebugGraphics.postscript preserve=yes +//## end DebugGraphics.postscript + +// Class DebugGraphics + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/graphic/graphics.cpp b/Lab4/graphic/graphics.cpp new file mode 100644 index 0000000..1e48d4e --- /dev/null +++ b/Lab4/graphic/graphics.cpp @@ -0,0 +1,82 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Graphics; Pseudo Package body +//## Subsystem: Graphic +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Graphic\Graphics.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphic\Graphics.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Graphics + +Graphics::Graphics() + //## begin Graphics::Graphics%.hasinit preserve=no + //## end Graphics::Graphics%.hasinit + //## begin Graphics::Graphics%.initialization preserve=yes + //## end Graphics::Graphics%.initialization +{ + //## begin Graphics::Graphics%.body preserve=yes + //## end Graphics::Graphics%.body +} + + +Graphics::~Graphics() +{ + //## begin Graphics::~Graphics%.body preserve=yes + //## end Graphics::~Graphics%.body +} + + + +//## Other Operations (implementation) +void Graphics::drawCircle (Point center, int radius, Color color) +{ + //## begin Graphics::drawCircle%938436810.body preserve=yes + cout << "\nCircle drawn with ("<; Point { -> } + +class Graphics +{ + //## begin Graphics.initialDeclarations preserve=yes + //## end Graphics.initialDeclarations + + public: + //## Constructors (generated) + Graphics(); + + //## Destructor (generated) + ~Graphics(); + + + //## Other Operations (specified) + //## Operation: drawCircle%938436810 + void drawCircle (Point center, int radius, Color color); + + //## Operation: drawRectangle%938436812 + void drawRectangle (Point leftTop, Point rightBottom, Color color); + + //## Operation: drawLine%938436813 + void drawLine (int x1, int y1, int x2, int y2, Color color); + + //## Operation: getBGColor%939797852 + Color getBGColor (); + + // Additional Public Declarations + //## begin Graphics.public preserve=yes + //## end Graphics.public + + protected: + // Additional Protected Declarations + //## begin Graphics.protected preserve=yes + //## end Graphics.protected + + private: + // Additional Private Declarations + //## begin Graphics.private preserve=yes + //## end Graphics.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Graphics.implementation preserve=yes + //## end Graphics.implementation + +}; + +//## begin Graphics.postscript preserve=yes +//## end Graphics.postscript + +// Class Graphics + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/line.cpp b/Lab4/line.cpp new file mode 100644 index 0000000..21097c5 --- /dev/null +++ b/Lab4/line.cpp @@ -0,0 +1,120 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Line; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Line.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Line +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Line.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Line + + +Line::Line (int x1, int y1, int x2, int y2, Color color) + //## begin Line::Line%939623930.hasinit preserve=no + //## end Line::Line%939623930.hasinit + //## begin Line::Line%939623930.initialization preserve=yes + //## end Line::Line%939623930.initialization +{ + //## begin Line::Line%939623930.body preserve=yes + setColor(color); + + Point start, end; + start.setx(x1); + start.sety(y1); + end.setx(x2); + end.sety(y2); + myPoints.add(myPoints.getSize(), start); + myPoints.add(myPoints.getSize(), end); + //## end Line::Line%939623930.body +} + + +Line::~Line() +{ + //## begin Line::~Line%.body preserve=yes + //## end Line::~Line%.body +} + + + +//## Other Operations (implementation) +void Line::draw (Graphics &g) +{ + //## begin Line::draw%937398668.body preserve=yes + Point start,end; + int i = 0; + if(!myPoints.isEmpty()) + start = myPoints.getItem(i++); + while(i < myPoints.getSize()) + { + end = myPoints.getItem(i++); + g.drawLine(start.getx(),start.gety(),end.getx(),end.gety(),getColor()); + start = end; + } + //## end Line::draw%937398668.body +} + +void Line::erase (Graphics &g) +{ + //## begin Line::erase%937398669.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Line::erase%937398669.body +} + +Figure * Line::clone () +{ + //## begin Line::clone%937398682.body preserve=yes + return new Line(*this); + //## end Line::clone%937398682.body +} + +void Line::add (int x, int y) +{ + //## begin Line::add%939734504.body preserve=yes + Point start; + start.setx(x); + start.sety(y); + myPoints.add(myPoints.getSize(), start); + //## end Line::add%939734504.body +} + +// Additional Declarations + //## begin Line.declarations preserve=yes + //## end Line.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Line::setColor%939797857.body preserve=no + color=src; + +//## end Line::setColor%939797857.body + +//## begin Line::getColor%939797858.body preserve=no + return color; +//## end Line::getColor%939797858.body + +#endif diff --git a/Lab4/line.h b/Lab4/line.h new file mode 100644 index 0000000..18406c6 --- /dev/null +++ b/Lab4/line.h @@ -0,0 +1,101 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Line; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Line.h + +#ifndef Line_h +#define Line_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// pList +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\pList.h" +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Line +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Line : public Figure //## Inherits: +{ + //## begin Line.initialDeclarations preserve=yes + //## end Line.initialDeclarations + + public: + //## Constructors (specified) + //## Operation: Line%939623930 + Line (int x1, int y1, int x2, int y2, Color color); + + //## Destructor (generated) + ~Line(); + + + //## Other Operations (specified) + //## Operation: draw%937398668 + void draw (Graphics &g); + + //## Operation: erase%937398669 + void erase (Graphics &g); + + //## Operation: clone%937398682 + Figure * clone (); + + //## Operation: add%939734504 + void add (int x, int y); + + // Additional Public Declarations + //## begin Line.public preserve=yes + //## end Line.public + + protected: + // Additional Protected Declarations + //## begin Line.protected preserve=yes + //## end Line.protected + + private: + // Additional Private Declarations + //## begin Line.private preserve=yes + //## end Line.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Line::myPoints.has + //## begin Line::myPoints.has preserve=no private: pList {1 -> 1VO} + pList myPoints; + //## end Line::myPoints.has + + // Additional Implementation Declarations + //## begin Line.implementation preserve=yes + //## end Line.implementation + +}; + +//## begin Line.postscript preserve=yes +//## end Line.postscript + +// Class Line + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/list.cpp b/Lab4/list.cpp new file mode 100644 index 0000000..a5f43fd --- /dev/null +++ b/Lab4/list.cpp @@ -0,0 +1,136 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\List.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\List.h" +//## begin module.additionalDeclarations preserve=yes +#include +#include +//## end module.additionalDeclarations + + +// Parameterized Class List + + + +template +List::List() + //## begin List::List%.hasinit preserve=no + : size(0) + //## end List::List%.hasinit + //## begin List::List%.initialization preserve=yes + //## end List::List%.initialization +{ + //## begin List::List%.body preserve=yes + head=NULL; + //## end List::List%.body +} + + +template +List::~List() +{ + //## begin List::~List%.body preserve=yes + delete head; + //## end List::~List%.body +} + + + +//## Other Operations (implementation) +template +void List::add (int position, T item) +{ + //## begin List::add%937398674.body preserve=yes + + size++; + Node* newPtr = new Node(item); + + if (position==0) { + newPtr->next=head; + head=newPtr; + } + else { + Node* prev=head; + for (int i=0;inext; + newPtr->next=prev->next; + prev->next=newPtr; + } + //## end List::add%937398674.body +} + +template +void List::del (int position) +{ + //## begin List::del%937398675.body preserve=yes + Node* trav=head; + Node* cur; + size--; + if (position == 0) { + cur = head; + head = head -> next; + } + else { + for (int i=0 ; i next; + cur = trav -> next; + trav -> next = cur ->next; + } + cur -> next = NULL; + delete cur; + cur = NULL; + + //## end List::del%937398675.body +} + +template +bool List::isEmpty () +{ + //## begin List::isEmpty%937398676.body preserve=yes + return (size==0); + //## end List::isEmpty%937398676.body +} + +template +int List::getSize () +{ + //## begin List::getSize%937398677.body preserve=yes + return size; + //## end List::getSize%937398677.body +} + +template +T List::getItem (int position) +{ + //## begin List::getItem%937398678.body preserve=yes + Node* cur=head; + for(int i=0 ; inext; + return (cur->data); + + //## end List::getItem%937398678.body +} + +// Additional Declarations + //## begin List.declarations preserve=yes + //## end List.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/list.h b/Lab4/list.h new file mode 100644 index 0000000..ba82003 --- /dev/null +++ b/Lab4/list.h @@ -0,0 +1,111 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\List.h + +#ifndef List_h +#define List_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Node +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: List; Parameterized Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class List +{ + //## begin List.initialDeclarations preserve=yes + //## end List.initialDeclarations + + public: + //## Constructors (generated) + List(); + + //## Destructor (generated) + ~List(); + + + //## Other Operations (specified) + //## Operation: add%937398674 + // Denna sätter in grejjer i listan... + void add (int position, T item); + + //## Operation: del%937398675 + void del (int position); + + //## Operation: isEmpty%937398676 + bool isEmpty (); + + //## Operation: getSize%937398677 + int getSize (); + + //## Operation: getItem%937398678 + T getItem (int position); + + // Additional Public Declarations + //## begin List.public preserve=yes + //## end List.public + + protected: + // Additional Protected Declarations + //## begin List.protected preserve=yes + //## end List.protected + + private: + // Additional Private Declarations + //## begin List.private preserve=yes + //## end List.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation List::head.has + //## begin List::head.has preserve=yes private: Node {1 -> 1RO} + Node *head; + //## end List::head.has + + // Data Members for Class Attributes + + //## Attribute: size + //## begin List::size.attr preserve=no private: int {U} 0 + int size; + //## end List::size.attr + + // Additional Implementation Declarations + //## begin List.implementation preserve=yes + //## end List.implementation + +}; + +//## begin List.postscript preserve=yes +//## end List.postscript + +// Parameterized Class List + + + +//## begin module.epilog preserve=yes +#include "list.cpp" +//## end module.epilog + + +#endif diff --git a/Lab4/main.cpp b/Lab4/main.cpp new file mode 100644 index 0000000..e169cbf --- /dev/null +++ b/Lab4/main.cpp @@ -0,0 +1,61 @@ +//# +//# main.c +//# +//# ======================================================= +//# Lab i Avacerad C++ +//# 4. Figures +//# +//# +//# Christian Ohlsson +//# Daniel Alfredsson +//# Karlstads universitet +//# 991013 +//# ======================================================= + + +#include +#include "Graphic\Graphics.h" +#include "line.h" +#include "rectngle.h" +#include "circle.h" +#include "flist.h" +#include "CmplxFgr.h" + +void main(void) { + ComplexFigure cf; + FList myList; + Graphics g; + + Line l(0,0,0,10, 9); + l.add(20,20); + + Rectangle r(5,5,25,25,8); + Circle c(100, 100, 50, 14); + + cf.add(FigureHolder(c)); + cf.add(FigureHolder(l)); + + myList.add(0,FigureHolder(l)); + myList.add(1,FigureHolder(r)); + myList.add(2,FigureHolder(c)); + myList.add(3,FigureHolder(cf)); + + cout <<"\n1"; + for(int i = 0; i < myList.getSize(); i++) { + FigureHolder fh = myList.getItem(i); + Figure* f = fh.getFigure(); + f->draw(g); + } + l.erase(g); + r.erase(g); + c.erase(g); + + cout <<"\n2"; + for(i = 0; i < myList.getSize(); i++) { + FigureHolder fh = myList.getItem(i); + Figure* f = fh.getFigure(); + f->draw(g); + } + char x; + cin >> x; +} diff --git a/Lab4/node.cpp b/Lab4/node.cpp new file mode 100644 index 0000000..870ab39 --- /dev/null +++ b/Lab4/node.cpp @@ -0,0 +1,66 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Node.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Node +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Parameterized Class Node + + + +template +Node::Node() + //## begin Node::Node%.hasinit preserve=no + //## end Node::Node%.hasinit + //## begin Node::Node%.initialization preserve=yes + //## end Node::Node%.initialization +{ + //## begin Node::Node%.body preserve=yes + //## end Node::Node%.body +} + + +template +Node::~Node() +{ + //## begin Node::~Node%.body preserve=yes + if(next) delete next ; + //## end Node::~Node%.body +} + + +// Additional Declarations + //## begin Node.declarations preserve=yes +#include "list.h" + //## end Node.declarations + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Node::getData%939104773.body preserve=no + return *this; +//## end Node::getData%939104773.body + +#endif diff --git a/Lab4/node.h b/Lab4/node.h new file mode 100644 index 0000000..bac75ce --- /dev/null +++ b/Lab4/node.h @@ -0,0 +1,97 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Node.h + +#ifndef Node_h +#define Node_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Node; Parameterized Class +// detta är lite dokumentation +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class Node +{ + //## begin Node.initialDeclarations preserve=yes + public: + Node(T theData):data(theData){next = (Node*)0;} + //## end Node.initialDeclarations + + public: + //## Constructors (generated) + Node(); + + //## Destructor (generated) + ~Node(); + + // Additional Public Declarations + //## begin Node.public preserve=yes + Node *next; + T data; + //## end Node.public + protected: + // Additional Protected Declarations + //## begin Node.protected preserve=yes + //## end Node.protected + + private: + // Additional Private Declarations + //## begin Node.private preserve=yes + //## end Node.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Node::next.has + //## begin Node::next.has preserve=yes public: Node {1 -> 1RO} + // Node *next; + //## end Node::next.has + + // Data Members for Class Attributes + + //## Attribute: data + // detta haldlar om datafältet + //## begin Node::data.attr preserve=yes public: T {U} + // T data; + //## end Node::data.attr + + // Additional Implementation Declarations + //## begin Node.implementation preserve=yes + //## end Node.implementation + +}; + +//## begin Node.postscript preserve=yes + +#include "node.cpp" +//## end Node.postscript + +// Parameterized Class Node + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/plist.cpp b/Lab4/plist.cpp new file mode 100644 index 0000000..46dcf84 --- /dev/null +++ b/Lab4/plist.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: pList; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\pList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// pList +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\pList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin pList.instantiation preserve=no +template class List< Point >; +//## end pList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/plist.h b/Lab4/plist.h new file mode 100644 index 0000000..0d81542 --- /dev/null +++ b/Lab4/plist.h @@ -0,0 +1,48 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: pList; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\pList.h + +#ifndef pList_h +#define pList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\List.h" +// Point +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: pList; Instantiated Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Point { -> } + +typedef List< Point > pList; + +//## begin pList.postscript preserve=yes +//## end pList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/point.cpp b/Lab4/point.cpp new file mode 100644 index 0000000..0c4960d --- /dev/null +++ b/Lab4/point.cpp @@ -0,0 +1,83 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Point; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Point + + + +Point::Point() + //## begin Point::Point%.hasinit preserve=no + //## end Point::Point%.hasinit + //## begin Point::Point%.initialization preserve=yes + //## end Point::Point%.initialization +{ + //## begin Point::Point%.body preserve=yes + //## end Point::Point%.body +} + + +Point::~Point() +{ + //## begin Point::~Point%.body preserve=yes + //## end Point::~Point%.body +} + + + +//## Other Operations (implementation) +int Point::getx () +{ + //## begin Point::getx%937398664.body preserve=yes + return x; + //## end Point::getx%937398664.body +} + +int Point::gety () +{ + //## begin Point::gety%937398665.body preserve=yes + return y; + //## end Point::gety%937398665.body +} + +void Point::setx (int src) +{ + //## begin Point::setx%937398666.body preserve=yes + x=src; + //## end Point::setx%937398666.body +} + +void Point::sety (int src) +{ + //## begin Point::sety%937398667.body preserve=yes + y=src; + //## end Point::sety%937398667.body +} + +// Additional Declarations + //## begin Point.declarations preserve=yes + //## end Point.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab4/point.h b/Lab4/point.h new file mode 100644 index 0000000..f60ab00 --- /dev/null +++ b/Lab4/point.h @@ -0,0 +1,101 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Point; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.h + +#ifndef Point_h +#define Point_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Point +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Point +{ + //## begin Point.initialDeclarations preserve=yes + //## end Point.initialDeclarations + + public: + //## Constructors (generated) + Point(); + + //## Destructor (generated) + ~Point(); + + + //## Other Operations (specified) + //## Operation: getx%937398664 + int getx (); + + //## Operation: gety%937398665 + int gety (); + + //## Operation: setx%937398666 + void setx (int src); + + //## Operation: sety%937398667 + void sety (int src); + + // Additional Public Declarations + //## begin Point.public preserve=yes + //## end Point.public + + protected: + // Additional Protected Declarations + //## begin Point.protected preserve=yes + //## end Point.protected + + private: + // Additional Private Declarations + //## begin Point.private preserve=yes + //## end Point.private + + private: //## implementation + // Data Members for Class Attributes + + //## Attribute: x + //## begin Point::x.attr preserve=no private: int {U} + int x; + //## end Point::x.attr + + //## Attribute: y + //## begin Point::y.attr preserve=no private: int {U} + int y; + //## end Point::y.attr + + // Additional Implementation Declarations + //## begin Point.implementation preserve=yes + //## end Point.implementation + +}; + +//## begin Point.postscript preserve=yes +//## end Point.postscript + +// Class Point + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/rectngle.cpp b/Lab4/rectngle.cpp new file mode 100644 index 0000000..88929c7 --- /dev/null +++ b/Lab4/rectngle.cpp @@ -0,0 +1,107 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Rectngle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Rectangle +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Rectngle.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Rectangle + + + +Rectangle::Rectangle() + //## begin Rectangle::Rectangle%.hasinit preserve=no + //## end Rectangle::Rectangle%.hasinit + //## begin Rectangle::Rectangle%.initialization preserve=yes + //## end Rectangle::Rectangle%.initialization +{ + //## begin Rectangle::Rectangle%.body preserve=yes + //## end Rectangle::Rectangle%.body +} + +Rectangle::Rectangle (int x1, int y1, int x2, int y2, Color color) + //## begin Rectangle::Rectangle%939623932.hasinit preserve=no + //## end Rectangle::Rectangle%939623932.hasinit + //## begin Rectangle::Rectangle%939623932.initialization preserve=yes + //## end Rectangle::Rectangle%939623932.initialization +{ + //## begin Rectangle::Rectangle%939623932.body preserve=yes + setColor(color); + leftTop.setx(x1); + leftTop.sety(y1); + rightBottom.setx(x2); + rightBottom.sety(y2); + //## end Rectangle::Rectangle%939623932.body +} + + +Rectangle::~Rectangle() +{ + //## begin Rectangle::~Rectangle%.body preserve=yes + //## end Rectangle::~Rectangle%.body +} + + + +//## Other Operations (implementation) +void Rectangle::draw (Graphics &g) +{ + //## begin Rectangle::draw%937398672.body preserve=yes + g.drawRectangle(leftTop, rightBottom, getColor()); + //## end Rectangle::draw%937398672.body +} + +void Rectangle::erase (Graphics &g) +{ + //## begin Rectangle::erase%937398673.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Rectangle::erase%937398673.body +} + +Figure * Rectangle::clone () +{ + //## begin Rectangle::clone%937398684.body preserve=yes + return new Rectangle(*this); + //## end Rectangle::clone%937398684.body +} + +// Additional Declarations + //## begin Rectangle.declarations preserve=yes + //## end Rectangle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Rectangle::setColor%939797855.body preserve=no + color=src; +//## end Rectangle::setColor%939797855.body + +//## begin Rectangle::getColor%939797856.body preserve=no + return color; +//## end Rectangle::getColor%939797856.body + +#endif diff --git a/Lab4/rectngle.h b/Lab4/rectngle.h new file mode 100644 index 0000000..14eff77 --- /dev/null +++ b/Lab4/rectngle.h @@ -0,0 +1,106 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Rectngle.h + +#ifndef Rectngle_h +#define Rectngle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Point.h" +// Figure +#include "H:\WebDocs\skola\Avancerad_C++\Lab4\Rose\Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Rectangle +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Rectangle : public Figure //## Inherits: +{ + //## begin Rectangle.initialDeclarations preserve=yes + //## end Rectangle.initialDeclarations + + public: + //## Constructors (generated) + Rectangle(); + + //## Constructors (specified) + //## Operation: Rectangle%939623932 + Rectangle (int x1, int y1, int x2, int y2, Color color); + + //## Destructor (generated) + ~Rectangle(); + + + //## Other Operations (specified) + //## Operation: draw%937398672 + void draw (Graphics &g); + + //## Operation: erase%937398673 + void erase (Graphics &g); + + //## Operation: clone%937398684 + Figure * clone (); + + // Additional Public Declarations + //## begin Rectangle.public preserve=yes + //## end Rectangle.public + + protected: + // Additional Protected Declarations + //## begin Rectangle.protected preserve=yes + //## end Rectangle.protected + + private: + // Additional Private Declarations + //## begin Rectangle.private preserve=yes + //## end Rectangle.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Rectangle::leftTop.has + //## begin Rectangle::leftTop.has preserve=no private: Point {1 -> 1VO} + Point leftTop; + //## end Rectangle::leftTop.has + + //## Documentation Rectangle::rightBottom.has + //## begin Rectangle::rightBottom.has preserve=no private: Point {1 -> 1VO} + Point rightBottom; + //## end Rectangle::rightBottom.has + + // Additional Implementation Declarations + //## begin Rectangle.implementation preserve=yes + //## end Rectangle.implementation + +}; + +//## begin Rectangle.postscript preserve=yes +//## end Rectangle.postscript + +// Class Rectangle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab4/rose.dsp b/Lab4/rose.dsp new file mode 100644 index 0000000..44688f5 --- /dev/null +++ b/Lab4/rose.dsp @@ -0,0 +1,196 @@ +# Microsoft Developer Studio Project File - Name="Rose" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=Rose - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Rose.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Rose.mak" CFG="Rose - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Rose - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "Rose - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Rose - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "Rose - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Rose - Win32 Release" +# Name "Rose - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Circle.cpp +# End Source File +# Begin Source File + +SOURCE=.\CmplxFgr.cpp +# End Source File +# Begin Source File + +SOURCE=.\Graphic\DbgGrphc.cpp +# End Source File +# Begin Source File + +SOURCE=.\FgrHlder.cpp +# End Source File +# Begin Source File + +SOURCE=.\Figure.cpp +# End Source File +# Begin Source File + +SOURCE=.\Flist.cpp +# End Source File +# Begin Source File + +SOURCE=.\Graphic\Graphics.cpp +# End Source File +# Begin Source File + +SOURCE=.\Line.cpp +# End Source File +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# Begin Source File + +SOURCE=.\pList.cpp +# End Source File +# Begin Source File + +SOURCE=.\Point.cpp +# End Source File +# Begin Source File + +SOURCE=.\Rectngle.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Circle.h +# End Source File +# Begin Source File + +SOURCE=.\CmplxFgr.h +# End Source File +# Begin Source File + +SOURCE=.\Graphic\DbgGrphc.h +# End Source File +# Begin Source File + +SOURCE=.\FgrHlder.h +# End Source File +# Begin Source File + +SOURCE=.\Figure.h +# End Source File +# Begin Source File + +SOURCE=.\Flist.h +# End Source File +# Begin Source File + +SOURCE=.\Graphic\Graphics.h +# End Source File +# Begin Source File + +SOURCE=.\Line.h +# End Source File +# Begin Source File + +SOURCE=.\List.h +# End Source File +# Begin Source File + +SOURCE=.\Node.h +# End Source File +# Begin Source File + +SOURCE=.\pList.h +# End Source File +# Begin Source File + +SOURCE=.\Point.h +# End Source File +# Begin Source File + +SOURCE=.\Rectngle.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Lab4/rose.dsw b/Lab4/rose.dsw new file mode 100644 index 0000000..3428c34 --- /dev/null +++ b/Lab4/rose.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Rose"=".\Rose.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Lab5/array.h b/Lab5/array.h new file mode 100644 index 0000000..a587d8d --- /dev/null +++ b/Lab5/array.h @@ -0,0 +1,118 @@ +//################################################################## +// LAB 5 +// ADVANCED PROGRAMMING IN C++ +// MATRIX/ARRAY WITH TRY-CATCH +//================================================================== +// array.h +// CLASS IMPLEMENTATION AND DEFINITION FOR +// THE ARRAY +// Christian Ohlsson +// Daniel Alfredsson +// Karlstad 990927 +//================================================================== + +#include +class Array { +private: + int size; //The size of the Array + int *buffer; //Pointer to an int-buffer +public: + ~Array(); + Array(const int s=0); + Array(const Array &src); + void operator = (const Array &src); + Array Array::operator +(const Array &src); + int &operator [] (int index) const; + int getSize() const; +}; +//################################################################ +// Constructor +// Creates a new Array +//================================================================ +Array::Array(const int s) { + try { + buffer = new int[s]; + }catch(MemoryError &e){ e.Print(); } + size= s; +} +//################################################################ +// Constructor +// Copys an array +//================================================================ +Array::Array(const Array &src) { + size = src.size; + try { + buffer = new int[size]; + }catch(MemoryError &e){ e.Print(); } + for(int i=0 ; i= size) + throw RangeError(); + return buffer[index]; +} +//################################################################ +// Operator overload +// Allows to add a Array to another +//================================================================ +Array Array::operator + (const Array &src) { + if(src.size != getSize()) + throw SizeError(); + Array tmp(size); + for(int i=0 ; i> (istream &is, Array &v) { + for(int l=0 ; l> v[l]; + return is; +} +//################################################################ +// Operator overload +// Prints out an Array, using STDOUT +//================================================================ +ostream &operator << (ostream &os, const Array &v) { + for(int k=0 ; k + +class Error{ +public: + virtual void Print() = 0; +}; + +class RangeError:public Error{ +public: + RangeError() {}; + void Print() { cout<<"Index out of range.\n"; } + +}; + +class MemoryError:public Error{ +public: + MemoryError() {}; + void Print() { cout<<"Could not create object.\n"; } + +}; + +class SizeError:public Error{ +public: + SizeError() {}; + void Print() { cout<<"Size doesnt match.\n"; } + +}; + +#endif \ No newline at end of file diff --git a/Lab5/lab5.dsp b/Lab5/lab5.dsp new file mode 100644 index 0000000..72b9836 --- /dev/null +++ b/Lab5/lab5.dsp @@ -0,0 +1,112 @@ +# Microsoft Developer Studio Project File - Name="Lab5" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=Lab5 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Lab5.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Lab5.mak" CFG="Lab5 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Lab5 - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "Lab5 - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Lab5 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "Lab5 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "Lab5 - Win32 Release" +# Name "Lab5 - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\matrix.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\array.h +# End Source File +# Begin Source File + +SOURCE=.\except.h +# End Source File +# Begin Source File + +SOURCE=.\matrix.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Lab5/lab5.dsw b/Lab5/lab5.dsw new file mode 100644 index 0000000..e0c8443 --- /dev/null +++ b/Lab5/lab5.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Lab5"=".\Lab5.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Lab5/matrix.cpp b/Lab5/matrix.cpp new file mode 100644 index 0000000..0429c75 --- /dev/null +++ b/Lab5/matrix.cpp @@ -0,0 +1,24 @@ +//matrix.cpp +#include "matrix.h" +int main() { + Array a(2); //Sätt till 3 om du vill ha SizeError + Matrix b (2,2); + cout << "input Array: " << endl; + cin>>a; + cout << "input Matrix: " << endl; + cin >>b; + + try { +// b[2] = a; //Ta med om du vill ha RangeError + b[1] = a + b[1]; + } catch(Error &e) { e.Print(); } + + Matrix c(b); + + try { + b[1][1] = a[1]; + } catch(Error &e) { e.Print(); } + + cout << "c:\n" < +#include "except.h" +#include "array.h" + +class Matrix { +private: + int cols, rows; //# of cols and rows in the matrix + Array *myMatrix; //Array-pointer to our matrix +public: + void Matrix::operator = (const Matrix &src); + int getCols() const { return cols;}; + int getRows() const { return rows;}; + Array &Matrix::operator [] (int index) const; + Matrix(const Matrix &src); + Matrix(int cols, int rows); + ~Matrix(); + +}; +//################################################################ +// Constructor +// Creates a new Matrix with 'c' columns and 'r' rows +//================================================================ +Matrix::Matrix(int c, int r) { + try { + myMatrix = new Array[r]; + }catch(MemoryError &e){ e.Print(); } + + for(int i=0; i < c; i++) + myMatrix[i] = Array(c); + cols = c; + rows = r; +} +//################################################################ +// Constructor +// Creates a new copy of a Matrix +//================================================================ +Matrix::Matrix(const Matrix &src) { + cols = src.cols; + rows = src.rows; + int i,j; + try { + myMatrix = new Array[rows]; + }catch(MemoryError &e){ e.Print(); } + + for(i=0; i < cols; i++) + myMatrix[i] = Array(cols); + for(i=0 ; i < cols ; i++) + for(j=0 ; j < rows ; j++) + myMatrix[i][j] = src.myMatrix[i][j]; +} +//################################################################ +// Destructor +// De-allocates memory for a Matrix +//================================================================ +Matrix::~Matrix() { + delete [] myMatrix; +} +//################################################################ +// Operator overload +// Sets one Matrix equal to another +//================================================================ +void Matrix::operator = (const Matrix &src) { + delete [] myMatrix; + cols = src.cols; + rows = src.rows; + try { + myMatrix = new Array[rows]; + }catch(MemoryError &e){ e.Print(); } + + for(int i=0 ; i=rows || index<0) + throw RangeError(); + return myMatrix[index]; +} +//################################################################ +// Operator overload +// Allow inserts in a Matrix, using STDIN +//================================================================ +istream &operator >> (istream &is, Matrix &v) { + int i,j; + for(i=0 ; i> v[i][j]; + return is; +} +//################################################################ +// Operator overload +// Prints the Matrix on the screen, using STDUOT +//================================================================ +ostream &operator << (ostream &os, const Matrix &v) { + int i,j; + for(i=0 ; i < v.getCols() ; i++) + for(j=0 ; j < v.getRows() ; j++) + os << i << "," << j<< " = " << v[i][j] << "\n"; + return os; +} + + + + diff --git a/Lab6/RoseModel.mdl b/Lab6/RoseModel.mdl new file mode 100644 index 0000000..12cb045 --- /dev/null +++ b/Lab6/RoseModel.mdl @@ -0,0 +1,7910 @@ + +(object Petal + version 40) + +(object Design "Logical View" + is_unit TRUE + is_loaded TRUE + file_name "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\RoseModel.mdl" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEHOME")) + quid "3814780702AE" + defaults (object defaults + rightMargin 0.250000 + leftMargin 0.250000 + topMargin 0.250000 + bottomMargin 0.500000 + pageOverlap 0.250000 + clipIconLabels TRUE + autoResize TRUE + snapToGrid TRUE + gridX 16 + gridY 16 + defaultFont (object Font + size 9 + face "helvetica" + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + showMessageNum 1 + showClassOfObject TRUE + notation "Booch") + root_usecase_package (object Class_Category "Use Case View" + quid "37DF8EBF0269" + exportControl "Public" + global TRUE + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "37DF8EC001CB" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + root_category (object Class_Category "Logical View" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab4\\Rose")) + quid "37DF8EBF0260" + exportControl "Public" + global TRUE + subsystem "Component View" + quidu "37DF8EBF026A" + logical_models (list unit_reference_list + (object Class_Category "Figures" + quid "37DF92E603A8" + exportControl "Public" + subsystem "Figures" + quidu "37DF936E0213" + logical_models (list unit_reference_list + (object Class "Point" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Point.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Point.cpp") + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37DF8F130133" + operations (list Operations + (object Operation "getx" + quid "37DF905302A6" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398664) + (object Operation "gety" + quid "37DF906802C4" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398665) + (object Operation "setx" + quid "37DF9078000A" + parameters (list Parameters + (object Parameter "src" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398666) + (object Operation "sety" + quid "37DF908200E1" + parameters (list Parameters + (object Parameter "src" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398667)) + class_attributes (list class_attribute_list + (object ClassAttribute "x" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF90240104" + type "int") + (object ClassAttribute "y" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF903E0382" + type "int"))) + (object Parameterized_Class "List" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\List.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\List.cpp") + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206))) + quid "37DF8F3C0255" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F1D703039D" + label "head" + supplier "Node" + quidu "37F1D6AF034C" + exportControl "Private" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + operations (list Operations + (object Operation "add" + quid "37DFA0890217" + documentation "Denna sätter in grejjer i listan..." + parameters (list Parameters + (object Parameter "position" + type "int") + (object Parameter "item" + type "T")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398674) + (object Operation "del" + quid "37DFA09B00B4" + parameters (list Parameters + (object Parameter "position" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398675) + (object Operation "isEmpty" + quid "37DFA18900CB" + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 937398676) + (object Operation "getSize" + quid "37DFA30803CF" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 937398677) + (object Operation "getItem" + quid "37DFA36100BF" + parameters (list Parameters + (object Parameter "position" + type "int")) + result "T" + concurrency "Sequential" + opExportControl "Public" + uid 937398678)) + class_attributes (list class_attribute_list + (object ClassAttribute "size" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DFA22D0185" + type "int" + initv "0")) + parameters (list Parameters + (object Parameter "T" + type "class"))) + (object Instantiated_Class "pList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\pList.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\pList.cpp")) + quid "37DF8F3F0028" + instantiation_relationship (object Instantiation_Relationship + quid "37DF9A2F02EB" + supplier "List" + quidu "37DF8F3C0255") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37DF92E00345" + supplier "Point" + quidu "37DF8F130133")) + parameters (list Parameters + (object Parameter "Point" + type "class"))) + (object Class "Circle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Circle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Circle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF932402C1" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37EF663C034C" + label "center" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA7130098" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF980D0264" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398670) + (object Operation "erase" + quid "37DF98170010" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398671) + (object Operation "clone" + quid "37DFB11E0199" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398683) + (object Operation "Circle" + quid "3801901F005E" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int") + (object Parameter "r" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623931)) + class_attributes (list class_attribute_list + (object ClassAttribute "radius" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37DF97850254" + type "int"))) + (object Class "Line" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Line.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Line.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 206))) + quid "37DF932C0240" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DF933B01A1" + label "myPoints" + supplier "pList" + quidu "37DF8F3F0028" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA70D039C" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF988A0322" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398668) + (object Operation "erase" + quid "37DF988E020F" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398669) + (object Operation "clone" + quid "37DFB16A026A" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398682) + (object Operation "Line" + quid "38018F3702D1" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623930) + (object Operation "add" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "38033E01030C" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939734504))) + (object Class "Rectangle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Rectngle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Rectngle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF953C018B" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F9AC500272" + label "leftTop" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1")) + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F9AC7E037C" + label "rightBottom" + supplier "Point" + quidu "37DF8F130133" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37DFA71601DC" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37DF985E00E4" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398672) + (object Operation "erase" + quid "37DF9862005D" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398673) + (object Operation "clone" + quid "37DFB1560059" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398684) + (object Operation "Rectangle" + quid "3801906800BD" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623932))) + (object Class "FigureHolder" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\FgrHlder.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\FgrHlder.cpp") + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37DF997101A8" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DF9B780104" + label "myFigure" + supplier "Figure" + quidu "37DF9AF80330" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + operations (list Operations + (object Operation "getFigure" + quid "380347120088" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 939734505)) + parameters (list Parameters + (object Parameter "myFigure" + type "Figure*"))) + (object Class "Figure" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Figure.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Figure.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel") + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199))) + quid "37DF9AF80330" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37F1CF5801CE" + supplier "Graphics" + quidu "37EF661102A0")) + abstract TRUE + operations (list Operations + (object Operation "draw" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFA74202B2" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398679) + (object Operation "erase" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFA76F023F" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 937398680) + (object Operation "clone" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "37DFB06E0362" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 937398681) + (object Operation "getColor" + quid "38019B95037E" + result "Color" + concurrency "Sequential" + opExportControl "Public" + uid 939623933) + (object Operation "setColor" + quid "38019B9B0033" + parameters (list Parameters + (object Parameter "c" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939623934)) + class_attributes (list class_attribute_list + (object ClassAttribute "color" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37DFA781015E" + type "Color"))) + (object Parameterized_Class "Node" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Node.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Node.cpp") + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206))) + quid "37F1D6AF034C" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F1D767033D" + label "next" + supplier "Node" + quidu "37F1D6AF034C" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + class_attributes (list class_attribute_list + (object ClassAttribute "data" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "variabler")) + quid "37F1D73E00DB" + type "T" + exportControl "Public")) + parameters (list Parameters + (object Parameter "T" + type "class"))) + (object Class "ComplexFigure" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\CmplxFgr.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\CmplxFgr.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37F99CFD01EE" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "37F99D4F0192" + label "myFList" + supplier "FList" + quidu "37F99D2800A6" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37F99D09001F" + supplier "Figure" + quidu "37DF9AF80330")) + operations (list Operations + (object Operation "draw" + quid "37F99D7600EE" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939104770) + (object Operation "erase" + quid "37F99D8903A8" + parameters (list Parameters + (object Parameter "g" + type "Graphics &")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939104771) + (object Operation "clone" + quid "37F99D930294" + result "Figure *" + concurrency "Sequential" + opExportControl "Public" + uid 939104772) + (object Operation "add" + quid "38034EBD012B" + parameters (list Parameters + (object Parameter "figure" + type "FigureHolder")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 939734506))) + (object Instantiated_Class "FList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\FList.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\FList.cpp")) + quid "37F99D2800A6" + instantiation_relationship (object Instantiation_Relationship + quid "37F99D490053" + supplier "List" + quidu "37DF8F3C0255") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "37F9A22C0124" + supplier "FigureHolder" + quidu "37DF997101A8")) + parameters (list Parameters + (object Parameter "FigureHolder" + type "class"))) + (object Mechanism @1 + logical_models (list unit_reference_list + (object Object "$UNNAMED$0" + quid "37EF65F10376" + collaborators (list link_list + (object Link + quid "37EF666F00BB" + supplier "center" + quidu "37EF665403A1" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF666F00BC" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF667303D8" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF906802C4"))) + (object Link + quid "37EF667A0305" + supplier "$UNNAMED$1" + quidu "381478070383" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawCircle (Point, int, Color)" + quid "37EF667A0306" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37EF667C0394")))) + class "Circle" + quidu "37DF932402C1" + persistence "Transient" + multi FALSE) + (object Object "me" + quid "37EF65F3038D" + collaborators (list link_list + (object Link + quid "37EF65FA0030" + supplier "$UNNAMED$0" + quidu "37EF65F10376" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF65FA0031" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF980D0264")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$1" + quid "37EF662701A7" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "center" + quid "37EF665403A1" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @2 + logical_models (list unit_reference_list + (object Object "me" + quid "37EF67F20270" + collaborators (list link_list + (object Link + quid "37EF68360250" + supplier "$UNNAMED$2" + quidu "38147807038B" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF68360251" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF985E00E4")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$2" + quid "37EF6807037E" + collaborators (list link_list + (object Link + quid "37EF6A9800F8" + supplier "leftTop" + quidu "37EF6A5F01B4" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF6A9800F9" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6A9F0333" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF906802C4"))) + (object Link + quid "37EF6AA6022F" + supplier "rightBottom" + quidu "37EF6A630250" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getx ( )" + quid "37EF6AA60230" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6AAC0101" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37DF906802C4"))) + (object Link + quid "37EF6AB600A1" + supplier "$UNNAMED$3" + quidu "38147807039C" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawRectangle (Point, Point, Color)" + quid "37EF6AB600A2" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 5 + quidu "37EF6AB90330")))) + class "Rectangle" + quidu "37DF953C018B" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$3" + quid "37EF682C0205" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "leftTop" + quid "37EF6A5F01B4" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE) + (object Object "rightBottom" + quid "37EF6A630250" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @3 + logical_models (list unit_reference_list + (object Object "me" + quid "37EF6C2301DC" + collaborators (list link_list + (object Link + quid "37EF6C43011A" + supplier "$UNNAMED$4" + quidu "3814780703A5" + messages (list Messages + (object Message "draw (Graphics &)" + quid "37EF6C43011B" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37DF988A0322")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$4" + quid "37EF6C35039B" + collaborators (list link_list + (object Link + quid "37EF6DC3005E" + supplier "$UNNAMED$5" + quidu "3814780703B4" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getItem (int)" + quid "37EF6DC3005F" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DFA36100BF"))) + (object Link + quid "37EF6DF000A9" + supplier "$UNNAMED$6" + quidu "3814780703B7" + supplier_containment "By Value" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "getx ( )" + quid "37EF6DF000AA" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DF905302A6") + (object Message "gety ( )" + quid "37EF6DF503C7" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DF906802C4"))) + (object Link + quid "37EF6DFB0055" + supplier "$UNNAMED$7" + quidu "3814780703B5" + supplier_containment "By Reference" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "drawLine (int, int, int, int, Color)" + quid "37EF6DFB0056" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37EF6E02033A")))) + class "Line" + quidu "37DF932C0240" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$5" + quid "37EF6D8A0020" + class "pList" + quidu "37DF8F3F0028" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$7" + quid "37EF6DA0034D" + class "Graphics" + quidu "37EF661102A0" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$6" + quid "37EF6DAD03A6" + class "Point" + quidu "37DF8F130133" + persistence "Transient" + multi FALSE))) + (object Mechanism @4 + logical_models (list unit_reference_list + (object Object "me" + quid "3801824E03B5" + collaborators (list link_list + (object Link + quid "3801826B0168" + supplier "$UNNAMED$8" + quidu "3814780703BD" + messages (list Messages + (object Message "draw (Graphics &)" + quid "3801826B0169" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "37F99D7600EE")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$8" + quid "38018263038D" + collaborators (list link_list + (object Link + quid "3801828D010D" + supplier "$UNNAMED$9" + quidu "3814780703CC" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "getItem (int)" + quid "3801828D010E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DFA36100BF") + (object Message "isEmpty ( )" + quid "380182DF0219" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "37DFA18900CB"))) + (object Link + quid "380182A4003D" + supplier "$UNNAMED$10" + quidu "3814780703CD" + supplier_containment "By Value" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "getFigure" + quid "380182A4003E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + Operation "getFigure ( )" + quidu "380347120088"))) + (object Link + quid "380182C7026F" + supplier "$UNNAMED$11" + quidu "3814780703CE" + supplier_containment "By Reference" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "draw (Graphics &)" + quid "380182C70270" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "37DFA74202B2")))) + class "ComplexFigure" + quidu "37F99CFD01EE" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$9" + quid "3801827B0002" + class "FList" + quidu "37F99D2800A6" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$10" + quid "3801829C03CB" + class "FigureHolder" + quidu "37DF997101A8" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$11" + quid "380182BF0303" + class "Figure" + quidu "37DF9AF80330" + persistence "Transient" + multi FALSE))) + (object Mechanism @5 + logical_models (list unit_reference_list + (object Object "me" + quid "380184DD03DF" + collaborators (list link_list + (object Link + quid "380184F5018B" + supplier "$UNNAMED$12" + quidu "3814780703D4" + messages (list Messages + (object Message "add(Figure *)" + quid "380184F5018C" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + Operation "add (FigureHolder)" + quidu "38034EBD012B")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$12" + quid "380184EE022B" + collaborators (list link_list + (object Link + quid "3801853C013D" + supplier "$UNNAMED$13" + quidu "3814780703DE" + supplier_containment "By Reference" + supplier_visibility "LOCAL" + messages (list Messages + (object Message "new FigureHolder(Figure*)" + quid "3801853C013E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1))) + (object Link + quid "380185590243" + supplier "$UNNAMED$14" + quidu "3814780703DF" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (int, T)" + quid "380185590244" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + quidu "37DFA0890217") + (object Message "getSize ( )" + quid "3801856300FD" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "37DFA30803CF")))) + class "ComplexFigure" + quidu "37F99CFD01EE" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$13" + quid "3801853601CA" + class "FigureHolder" + quidu "37DF997101A8" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$14" + quid "380185540245" + class "FList" + quidu "37F99D2800A6" + persistence "Transient" + multi FALSE)))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37DF92F000DB" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 38 + items (list diagram_item_list + (object ClassView "Class" "Point" @6 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1776, 864) + label (object ItemLabel + Parent_View @6 + location (1672, 707) + nlines 2 + max_width 240 + justify 0 + label "Point") + quidu "37DF8F130133" + compartment (object Compartment + Parent_View @6 + location (1710, 770) + anchor 2 + nlines 6 + max_width 153 + justify 0) + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "ParameterizedClass" "List" @7 + IncludeAttribute TRUE + IncludeOperation TRUE + location (576, 480) + label (object ItemLabel + Parent_View @7 + location (460, 305) + nlines 2 + max_width 271 + justify 0 + label "List") + quidu "37DF8F3C0255" + compartment (object Compartment + Parent_View @7 + location (460, 368) + anchor 2 + nlines 7 + max_width 259 + justify 0) + width 394 + height 514 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "pList" @8 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1376, 352) + label (object ItemLabel + Parent_View @8 + location (1272, 268) + nlines 2 + max_width 240 + justify 0 + label "pList") + quidu "37DF8F3F0028" + annotation 8 + autoResize TRUE) + (object UsesView "" @9 + quidu "37DF92E00345" + client @8 + supplier @6 + line_style 0) + (object ClassView "Class" "FigureHolder" @10 + IncludeAttribute TRUE + IncludeOperation TRUE + location (848, 1408) + label (object ItemLabel + Parent_View @10 + location (696, 1324) + nlines 2 + max_width 358 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + compartment (object Compartment + Parent_View @10 + location (696, 1387) + anchor 2 + nlines 2 + max_width 347 + justify 0) + width 520 + annotation 8 + autoResize TRUE) + (object InstantiateView "" @11 + quidu "37DF9A2F02EB" + client @8 + supplier @7 + line_style 0) + (object ClassView "Class" "Figure" @12 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1632, 1408) + label (object ItemLabel + Parent_View @12 + location (1518, 1223) + nlines 2 + max_width 267 + justify 0 + label "Figure") + quidu "37DF9AF80330" + compartment (object Compartment + Parent_View @12 + location (1517, 1286) + anchor 2 + nlines 6 + max_width 256 + justify 0) + width 388 + height 542 + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @13 + label (object ItemLabel + Parent_View @13 + location (1254, 1408) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @10 + supplier @12 + line_style 0) + (object ClassView "ParameterizedClass" "Node" @14 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1088, 960) + label (object ItemLabel + Parent_View @14 + location (979, 876) + nlines 2 + max_width 252 + justify 0 + label "Node") + quidu "37F1D6AF034C" + compartment (object Compartment + Parent_View @14 + location (979, 939) + anchor 2 + nlines 2 + max_width 241 + justify 0) + width 366 + annotation 8 + autoResize TRUE) + (object HasView "next" @15 + label (object ItemLabel + Parent_View @15 + location (1419, 1058) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "next") + quidu "37F1D767033D" + client @14 + supplier @14 + vertices (list Points + (1186, 1040) + (1293, 1134) + (1453, 1037) + (1359, 943) + (1244, 952)) + line_style 0) + (object HasView "head" @16 + label (object ItemLabel + Parent_View @16 + location (822, 749) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "head") + quidu "37F1D703039D" + client @7 + supplier @14 + line_style 0) + (object ClassView "InstantiatedClass" "FList" @17 + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 1120) + label (object ItemLabel + Parent_View @17 + location (168, 1036) + nlines 2 + max_width 240 + justify 0 + label "FList") + quidu "37F99D2800A6" + annotation 8 + autoResize TRUE) + (object InstantiateView "" @18 + quidu "37F99D490053" + client @17 + supplier @7 + line_style 0) + (object UsesView "" @19 + quidu "37F9A22C0124" + client @17 + supplier @10 + line_style 0))) + (object ClassDiagram "Figures" + quid "37DF931D0162" + title "Figures" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 231 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Circle" @20 + IncludeAttribute TRUE + IncludeOperation TRUE + location (496, 832) + label (object ItemLabel + Parent_View @20 + location (375, 675) + nlines 2 + max_width 282 + justify 0 + label "Circle") + quidu "37DF932402C1" + compartment (object Compartment + Parent_View @20 + location (375, 738) + anchor 2 + nlines 6 + max_width 272 + justify 0) + width 410 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Line" @21 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1856, 736) + label (object ItemLabel + Parent_View @21 + location (1715, 579) + nlines 2 + max_width 333 + justify 0 + label "Line") + quidu "37DF932C0240" + compartment (object Compartment + Parent_View @21 + location (1715, 642) + anchor 2 + nlines 6 + max_width 322 + justify 0) + width 484 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "pList" @22 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1792, 1264) + label (object ItemLabel + Parent_View @22 + location (1688, 1180) + nlines 2 + max_width 240 + justify 0 + label "pList") + quidu "37DF8F3F0028" + annotation 8 + autoResize TRUE) + (object HasView "myPoints" @23 + label (object ItemLabel + Parent_View @23 + location (1820, 1052) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myPoints") + quidu "37DF933B01A1" + client @21 + supplier @22 + line_style 0) + (object ClassView "Class" "Rectangle" @24 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1232, 784) + label (object ItemLabel + Parent_View @24 + location (1074, 627) + nlines 2 + max_width 373 + justify 0 + label "Rectangle") + quidu "37DF953C018B" + compartment (object Compartment + Parent_View @24 + location (1073, 690) + anchor 2 + nlines 6 + max_width 362 + justify 0) + width 542 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Figure" @25 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1232, 304) + label (object ItemLabel + Parent_View @25 + location (1118, 119) + nlines 2 + max_width 267 + justify 0 + label "Figure") + quidu "37DF9AF80330" + compartment (object Compartment + Parent_View @25 + location (1117, 182) + anchor 2 + nlines 6 + max_width 256 + justify 0) + width 388 + height 542 + annotation 8 + autoResize TRUE) + (object InheritView "" @26 + quidu "37DFA70D039C" + client @21 + supplier @25 + line_style 0) + (object InheritView "" @27 + quidu "37DFA7130098" + client @20 + supplier @25 + line_style 0) + (object InheritView "" @28 + quidu "37DFA71601DC" + client @24 + supplier @25 + line_style 0) + (object ClassView "Class" "Point" @29 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1264, 1456) + label (object ItemLabel + Parent_View @29 + location (1160, 1299) + nlines 2 + max_width 240 + justify 0 + label "Point") + quidu "37DF8F130133" + compartment (object Compartment + Parent_View @29 + location (1198, 1362) + anchor 2 + nlines 6 + max_width 153 + justify 0) + height 460 + annotation 8 + autoResize TRUE) + (object UsesView "" @30 + quidu "37DF92E00345" + client @22 + supplier @29 + line_style 0) + (object HasView "center" @31 + label (object ItemLabel + Parent_View @31 + location (882, 1133) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "center") + quidu "37EF663C034C" + client @20 + supplier @29 + line_style 0) + (object ClassView "Class" "Graphics" @32 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2064, 240) + label (object ItemLabel + Parent_View @32 + location (1914, 78) + nlines 2 + max_width 354 + justify 0 + label "Graphics") + quidu "37EF661102A0" + compartment (object Compartment + Parent_View @32 + location (1914, 141) + anchor 2 + nlines 5 + max_width 344 + justify 0) + width 514 + height 476 + annotation 8 + autoResize TRUE) + (object UsesView "" @33 + quidu "37F1CF5801CE" + client @25 + supplier @32 + line_style 0) + (object ClassView "Class" "FigureHolder" @34 + IncludeAttribute TRUE + IncludeOperation TRUE + location (528, 192) + label (object ItemLabel + Parent_View @34 + location (376, 108) + nlines 2 + max_width 358 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + compartment (object Compartment + Parent_View @34 + location (376, 171) + anchor 2 + nlines 2 + max_width 347 + justify 0) + width 520 + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @35 + label (object ItemLabel + Parent_View @35 + location (902, 232) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @34 + supplier @25 + line_style 0) + (object HasView "leftTop" @36 + label (object ItemLabel + Parent_View @36 + location (1250, 1127) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "leftTop") + quidu "37F9AC500272" + client @24 + supplier @29 + line_style 0) + (object HasView "rightBottom" @37 + label (object ItemLabel + Parent_View @37 + location (1398, 1096) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "rightBottom") + quidu "37F9AC7E037C" + client @24 + supplier @29 + vertices (list Points + (1302, 937) + (1425, 1141) + (1326, 1233)) + line_style 0) + (object UsesView "" @38 + quidu "3801921A032E" + client @32 + supplier @29 + vertices (list Points + (2080, 438) + (2206, 1422) + (1413, 1446)) + line_style 0) + (object ClassView "Class" "Pline" @39 + IncludeAttribute TRUE + IncludeOperation TRUE + location (768, 1312) + label (object ItemLabel + Parent_View @39 + location (646, 1228) + nlines 2 + max_width 285 + justify 0 + label "Pline") + quidu "3814793E035F" + compartment (object Compartment + Parent_View @39 + location (645, 1291) + anchor 2 + nlines 2 + max_width 284 + justify 0) + width 414 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Pcircle" @40 + IncludeAttribute TRUE + IncludeOperation TRUE + location (480, 1616) + label (object ItemLabel + Parent_View @40 + location (358, 1532) + nlines 2 + max_width 285 + justify 0 + label "Pcircle") + quidu "381479110314" + compartment (object Compartment + Parent_View @40 + location (357, 1595) + anchor 2 + nlines 2 + max_width 284 + justify 0) + width 414 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Prectangle" @41 + IncludeAttribute TRUE + IncludeOperation TRUE + location (944, 1600) + label (object ItemLabel + Parent_View @41 + location (822, 1516) + nlines 2 + max_width 285 + justify 0 + label "Prectangle") + quidu "38147BAE00D1" + compartment (object Compartment + Parent_View @41 + location (821, 1579) + anchor 2 + nlines 2 + max_width 284 + justify 0) + width 414 + annotation 8 + autoResize TRUE) + (object InheritView "" @42 + quidu "38147D7F008A" + client @40 + supplier @20 + line_style 0) + (object InheritView "" @43 + quidu "38147D8300F4" + client @39 + supplier @21 + line_style 0) + (object InheritView "" @44 + quidu "38147D870172" + client @41 + supplier @24 + line_style 0) + (object ClassView "Class" "PersFig" @45 + IncludeAttribute TRUE + IncludeOperation TRUE + location (368, 1280) + label (object ItemLabel + Parent_View @45 + location (264, 1196) + nlines 2 + max_width 240 + justify 0 + label "PersFig") + quidu "3814794803BE" + annotation 8 + autoResize TRUE) + (object InheritView "" @46 + quidu "38147C190356" + client @39 + supplier @45 + line_style 0) + (object InheritView "" @47 + quidu "38147C1C03C9" + client @40 + supplier @45 + line_style 0) + (object InheritView "" @48 + quidu "38147C1F037D" + client @41 + supplier @45 + line_style 0) + (object InheritView "" @49 + quidu "3814830B0082" + client @45 + supplier @25 + line_style 0))) + (object ClassDiagram "ComplexFigure" + quid "37F99CA70321" + title "ComplexFigure" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Figure" @50 + IncludeAttribute TRUE + IncludeOperation TRUE + location (800, 272) + label (object ItemLabel + Parent_View @50 + location (696, 188) + nlines 2 + max_width 240 + justify 0 + label "Figure") + quidu "37DF9AF80330" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "FigureHolder" @51 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1536, 224) + label (object ItemLabel + Parent_View @51 + location (1432, 140) + nlines 2 + max_width 240 + justify 0 + label "FigureHolder") + quidu "37DF997101A8" + annotation 8 + autoResize TRUE) + (object HasView "myFigure" @52 + label (object ItemLabel + Parent_View @52 + location (1162, 248) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFigure") + quidu "37DF9B780104" + client @51 + supplier @50 + line_style 0) + (object ClassView "ParameterizedClass" "List" @53 + IncludeAttribute TRUE + IncludeOperation TRUE + location (944, 832) + label (object ItemLabel + Parent_View @53 + location (840, 748) + nlines 2 + max_width 240 + justify 0 + label "List") + quidu "37DF8F3C0255" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "ComplexFigure" @54 + IncludeAttribute TRUE + IncludeOperation TRUE + location (240, 416) + label (object ItemLabel + Parent_View @54 + location (136, 332) + nlines 2 + max_width 240 + justify 0 + label "ComplexFigure") + quidu "37F99CFD01EE" + annotation 8 + autoResize TRUE) + (object InheritView "" @55 + quidu "37F99D09001F" + client @54 + supplier @50 + line_style 0) + (object ClassView "InstantiatedClass" "FList" @56 + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 976) + label (object ItemLabel + Parent_View @56 + location (168, 892) + nlines 2 + max_width 240 + justify 0 + label "FList") + quidu "37F99D2800A6" + annotation 8 + autoResize TRUE) + (object InstantiateView "" @57 + quidu "37F99D490053" + client @56 + supplier @53 + line_style 0) + (object HasView "myFList" @58 + label (object ItemLabel + Parent_View @58 + location (257, 700) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myFList") + quidu "37F99D4F0192" + client @54 + supplier @56 + line_style 0))) + (object InteractionDiagram "draw circle" + mechanism_ref @1 + quid "37EF65EE03C2" + title "draw circle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 37 + origin_y 0 + items (list diagram_item_list + (object InterObjView "$UNNAMED$0" @59 + location (688, 224) + quidu "37EF65F10376" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @60 + location (688, 352) + InterObjView @59 + height 344 + y_coord 284 + Nested FALSE)) + (object InterObjView "me" @61 + location (208, 224) + label (object ItemLabel + Parent_View @61 + location (208, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF65F3038D" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @62 + location (208, 352) + InterObjView @61 + height 404 + y_coord 344 + Nested FALSE)) + (object InterMessView "" @63 + location (0, 352) + label (object SegLabel @64 + Parent_View @63 + location (448, 308) + quidu "37EF65FA0031" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @61 + supplier @59 + Focus_Src @62 + Focus_Entry @60 + origin (224, 352) + terminus (672, 352) + ordinal 0) + (object InterObjView "$UNNAMED$1" @65 + location (1536, 224) + quidu "37EF662701A7" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @66 + location (1536, 576) + InterObjView @65 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "center" @67 + location (1184, 224) + label (object ItemLabel + Parent_View @67 + location (1184, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "center") + quidu "37EF665403A1" + width 300 + height 621 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @68 + location (1184, 384) + InterObjView @67 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @69 + location (1184, 480) + InterObjView @67 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @70 + location (0, 384) + label (object SegLabel @71 + Parent_View @70 + location (936, 340) + quidu "37EF666F00BC" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @59 + supplier @67 + Focus_Src @60 + Focus_Entry @68 + origin (704, 384) + terminus (1168, 384) + ordinal 1) + (object InterMessView "" @72 + location (0, 480) + label (object SegLabel @73 + Parent_View @72 + location (936, 436) + quidu "37EF667303D8" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @59 + supplier @67 + Focus_Src @60 + Focus_Entry @69 + origin (704, 480) + terminus (1168, 480) + ordinal 2) + (object InterMessView "" @74 + location (0, 576) + label (object SegLabel @75 + Parent_View @74 + location (1112, 532) + quidu "37EF667A0306" + anchor_loc 1 + nlines 1 + max_width 541 + justify 0 + label "drawCircle (Point, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @59 + supplier @65 + Focus_Src @60 + Focus_Entry @66 + origin (704, 576) + terminus (1520, 576) + ordinal 3))) + (object ObjectDiagram "draw circle" + mechanism_ref @1 + quid "37EF66AE0346" + title "draw circle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @76 + location (320, 240) + label (object ItemLabel + Parent_View @76 + location (216, 156) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF65F3038D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "center" @77 + location (544, 912) + label (object ItemLabel + Parent_View @77 + location (440, 828) + nlines 2 + max_width 240 + justify 0 + label "center") + quidu "37EF665403A1" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$0" @78 + location (1136, 368) + quidu "37EF65F10376" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.247765 + y_offset 0.252205) + (object ObjectView "$UNNAMED$1" @79 + location (1552, 896) + quidu "37EF662701A7" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset -0.080000 + y_offset 0.110000) + (object LinkView "" @80 + quidu "37EF666F00BB" + client @78 + supplier @77 + line_style 0) + (object MessView "" @81 + location (881, 663) + label (object SegLabel @82 + Parent_View @81 + location (912, 739) + quidu "37EF666F00BC" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @83 + Parent_View @81 + location (912, 696) + quidu "37EF667303D8" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @80 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (924, 622) + terminus (838, 704)) + (object LinkView "" @84 + quidu "37EF667A0305" + client @78 + supplier @79 + line_style 0) + (object MessView "" @85 + location (1364, 587) + label (object SegLabel @86 + Parent_View @85 + location (1374, 560) + quidu "37EF667A0306" + anchor_loc 1 + nlines 1 + max_width 551 + justify 0 + label "drawCircle (Point, int, Color)" + pctDist 0.366667 + height 26 + orientation 0) + object_arc @84 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1327, 540) + terminus (1401, 634)) + (object LinkView "" @87 + quidu "37EF65FA0030" + client @76 + supplier @78 + line_style 0) + (object MessView "" @88 + location (728, 259) + label (object SegLabel @89 + Parent_View @88 + location (734, 216) + quidu "37EF65FA0031" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @87 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (669, 250) + terminus (787, 268)))) + (object InteractionDiagram "draw rectangle" + mechanism_ref @2 + quid "37EF67EB0071" + title "draw rectangle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @90 + location (176, 224) + label (object ItemLabel + Parent_View @90 + location (176, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF67F20270" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @91 + location (176, 320) + InterObjView @90 + height 532 + y_coord 472 + Nested FALSE)) + (object InterObjView "$UNNAMED$2" @92 + location (592, 224) + quidu "37EF6807037E" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @93 + location (592, 320) + InterObjView @92 + height 472 + y_coord 412 + Nested FALSE)) + (object InterObjView "$UNNAMED$3" @94 + location (1728, 224) + quidu "37EF682C0205" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @95 + location (1728, 672) + InterObjView @94 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "leftTop" @96 + location (992, 224) + label (object ItemLabel + Parent_View @96 + location (992, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "leftTop") + quidu "37EF6A5F01B4" + width 300 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @97 + location (992, 368) + InterObjView @96 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @98 + location (992, 448) + InterObjView @96 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "rightBottom" @99 + location (1392, 224) + label (object ItemLabel + Parent_View @99 + location (1392, 224) + anchor_loc 1 + nlines 2 + max_width 363 + justify 0 + label "rightBottom") + quidu "37EF6A630250" + width 381 + height 717 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @100 + location (1392, 544) + InterObjView @99 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @101 + location (1392, 608) + InterObjView @99 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @102 + location (0, 320) + label (object SegLabel @103 + Parent_View @102 + location (384, 276) + quidu "37EF68360251" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @90 + supplier @92 + Focus_Src @91 + Focus_Entry @93 + origin (192, 320) + terminus (576, 320) + ordinal 0) + (object InterMessView "" @104 + location (0, 368) + label (object SegLabel @105 + Parent_View @104 + location (792, 324) + quidu "37EF6A9800F9" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @92 + supplier @96 + Focus_Src @93 + Focus_Entry @97 + origin (608, 368) + terminus (976, 368) + ordinal 1) + (object InterMessView "" @106 + location (0, 448) + label (object SegLabel @107 + Parent_View @106 + location (792, 404) + quidu "37EF6A9F0333" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @92 + supplier @96 + Focus_Src @93 + Focus_Entry @98 + origin (608, 448) + terminus (976, 448) + ordinal 2) + (object InterMessView "" @108 + location (0, 544) + label (object SegLabel @109 + Parent_View @108 + location (992, 500) + quidu "37EF6AA60230" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @92 + supplier @99 + Focus_Src @93 + Focus_Entry @100 + origin (608, 544) + terminus (1376, 544) + ordinal 3) + (object InterMessView "" @110 + location (0, 608) + label (object SegLabel @111 + Parent_View @110 + location (992, 564) + quidu "37EF6AAC0101" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @92 + supplier @99 + Focus_Src @93 + Focus_Entry @101 + origin (608, 608) + terminus (1376, 608) + ordinal 4) + (object InterMessView "" @112 + location (0, 672) + label (object SegLabel @113 + Parent_View @112 + location (1160, 628) + quidu "37EF6AB600A2" + anchor_loc 1 + nlines 1 + max_width 670 + justify 0 + label "drawRectangle (Point, Point, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @92 + supplier @94 + Focus_Src @93 + Focus_Entry @95 + origin (608, 672) + terminus (1712, 672) + ordinal 5))) + (object ObjectDiagram "draw rectangle" + mechanism_ref @2 + quid "37EF6B8800D5" + title "draw rectangle" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @114 + location (208, 544) + label (object ItemLabel + Parent_View @114 + location (104, 460) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF67F20270" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$2" @115 + location (864, 192) + quidu "37EF6807037E" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$3" @116 + location (1552, 608) + quidu "37EF682C0205" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "leftTop" @117 + location (272, 1248) + label (object ItemLabel + Parent_View @117 + location (168, 1164) + nlines 2 + max_width 240 + justify 0 + label "leftTop") + quidu "37EF6A5F01B4" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "rightBottom" @118 + location (992, 1024) + label (object ItemLabel + Parent_View @118 + location (888, 940) + nlines 2 + max_width 240 + justify 0 + label "rightBottom") + quidu "37EF6A630250" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @119 + quidu "37EF68360250" + client @114 + supplier @115 + line_style 0) + (object MessView "" @120 + location (547, 312) + label (object SegLabel @121 + Parent_View @120 + location (528, 273) + quidu "37EF68360251" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @119 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (494, 339) + terminus (600, 285)) + (object LinkView "" @122 + quidu "37EF6A9800F8" + client @115 + supplier @117 + line_style 0) + (object MessView "" @123 + location (607, 743) + label (object SegLabel @124 + Parent_View @123 + location (678, 841) + quidu "37EF6A9800F9" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.952982 + height 109 + orientation 0) + label (object SegLabel @125 + Parent_View @123 + location (678, 798) + quidu "37EF6A9F0333" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.632454 + height 89 + orientation 0) + object_arc @122 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (635, 691) + terminus (579, 795)) + (object LinkView "" @126 + quidu "37EF6AA6022F" + client @115 + supplier @118 + line_style 0) + (object MessView "" @127 + location (972, 603) + label (object SegLabel @128 + Parent_View @127 + location (1016, 553) + quidu "37EF6AA60230" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @129 + Parent_View @127 + location (1016, 596) + quidu "37EF6AAC0101" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @126 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (963, 544) + terminus (981, 662)) + (object LinkView "" @130 + quidu "37EF6AB600A1" + client @115 + supplier @116 + line_style 0) + (object MessView "" @131 + location (1235, 366) + label (object SegLabel @132 + Parent_View @131 + location (1257, 329) + quidu "37EF6AB600A2" + anchor_loc 1 + nlines 1 + max_width 674 + justify 0 + label "drawRectangle (Point, Point, Color)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @130 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1184, 335) + terminus (1286, 397)))) + (object InteractionDiagram "draw line" + mechanism_ref @3 + quid "37EF6C1A0360" + title "draw line" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @133 + location (160, 224) + label (object ItemLabel + Parent_View @133 + location (160, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "37EF6C2301DC" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @134 + location (160, 320) + InterObjView @133 + height 612 + y_coord 552 + Nested FALSE)) + (object InterObjView "$UNNAMED$4" @135 + location (512, 224) + quidu "37EF6C35039B" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @136 + location (512, 320) + InterObjView @135 + height 552 + y_coord 492 + Nested FALSE)) + (object InterObjView "$UNNAMED$5" @137 + location (1168, 224) + quidu "37EF6D8A0020" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @138 + location (1168, 448) + InterObjView @137 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$6" @139 + location (1504, 224) + quidu "37EF6DAD03A6" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @140 + location (1504, 576) + InterObjView @139 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @141 + location (1504, 672) + InterObjView @139 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$7" @142 + location (832, 224) + quidu "37EF6DA0034D" + width 300 + height 797 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @143 + location (832, 752) + InterObjView @142 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @144 + location (0, 320) + label (object SegLabel @145 + Parent_View @144 + location (336, 276) + quidu "37EF6C43011B" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @133 + supplier @135 + Focus_Src @134 + Focus_Entry @136 + origin (176, 320) + terminus (496, 320) + ordinal 0) + (object InterMessView "" @146 + location (0, 448) + label (object SegLabel @147 + Parent_View @146 + location (840, 404) + quidu "37EF6DC3005F" + anchor_loc 1 + nlines 1 + max_width 203 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + client @135 + supplier @137 + Focus_Src @136 + Focus_Entry @138 + origin (528, 448) + terminus (1152, 448) + ordinal 1) + (object InterMessView "" @148 + location (0, 576) + label (object SegLabel @149 + Parent_View @148 + location (1008, 532) + quidu "37EF6DF000AA" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @135 + supplier @139 + Focus_Src @136 + Focus_Entry @140 + origin (528, 576) + terminus (1488, 576) + ordinal 2) + (object InterMessView "" @150 + location (0, 672) + label (object SegLabel @151 + Parent_View @150 + location (1008, 628) + quidu "37EF6DF503C7" + anchor_loc 1 + nlines 1 + max_width 100 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @135 + supplier @139 + Focus_Src @136 + Focus_Entry @141 + origin (528, 672) + terminus (1488, 672) + ordinal 3) + (object InterMessView "" @152 + location (0, 752) + label (object SegLabel @153 + Parent_View @152 + location (672, 708) + quidu "37EF6DFB0056" + anchor_loc 1 + nlines 1 + max_width 525 + justify 0 + label "drawLine (int, int, int, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + client @135 + supplier @142 + Focus_Src @136 + Focus_Entry @143 + origin (528, 752) + terminus (816, 752) + ordinal 4))) + (object ObjectDiagram "draw line" + mechanism_ref @3 + quid "37EF6E46012F" + title "draw line" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @154 + location (208, 1072) + label (object ItemLabel + Parent_View @154 + location (104, 988) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "37EF6C2301DC" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$4" @155 + location (864, 224) + quidu "37EF6C35039B" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$5" @156 + location (784, 848) + quidu "37EF6D8A0020" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$7" @157 + location (1600, 560) + quidu "37EF6DA0034D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$6" @158 + location (1312, 912) + quidu "37EF6DAD03A6" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @159 + quidu "37EF6C43011A" + client @154 + supplier @155 + line_style 0) + (object MessView "" @160 + location (503, 619) + label (object SegLabel @161 + Parent_View @160 + location (422, 528) + quidu "37EF6C43011B" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.683788 + height 122 + orientation 0) + object_arc @159 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (466, 665) + terminus (540, 573)) + (object LinkView "" @162 + quidu "37EF6DC3005E" + client @155 + supplier @156 + line_style 0) + (object MessView "" @163 + location (910, 565) + label (object SegLabel @164 + Parent_View @163 + location (1004, 700) + quidu "37EF6DC3005F" + anchor_loc 1 + nlines 1 + max_width 244 + justify 0 + label "getItem (int)" + pctDist 1.535977 + height 109 + orientation 0) + DataFlowView @165 + object_arc @162 + pctDist 0.530325 + height 90 + orientation 0 + dir 1 + origin (917, 506) + terminus (903, 624)) + (object DataFlowView "" @165 + label (object SegLabel @166 + Parent_View @165 + location (855, 655) + anchor_loc 2 + nlines 1 + max_width 108 + justify 2 + label ":Point" + pctDist -0.300000 + height 0 + orientation 1) + dir -1 + height 45 + MessView @163) + (object LinkView "" @167 + quidu "37EF6DF000A9" + client @155 + supplier @158 + line_style 0) + (object MessView "" @168 + location (1115, 528) + label (object SegLabel @169 + Parent_View @168 + location (1153, 461) + quidu "37EF6DF000AA" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "getx ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @170 + Parent_View @168 + location (1153, 504) + quidu "37EF6DF503C7" + anchor_loc 1 + nlines 1 + max_width 153 + justify 0 + label "gety ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @167 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1082, 478) + terminus (1148, 578)) + (object LinkView "" @171 + quidu "37EF6DFB0055" + client @155 + supplier @157 + line_style 0) + (object MessView "" @172 + location (1259, 356) + label (object SegLabel @173 + Parent_View @172 + location (1278, 316) + quidu "37EF6DFB0056" + anchor_loc 1 + nlines 1 + max_width 566 + justify 0 + label "drawLine (int, int, int, int, Color)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @171 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1204, 331) + terminus (1314, 381)))) + (object InteractionDiagram "ComplexDrawing" + mechanism_ref @4 + quid "380182470224" + title "ComplexDrawing" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @174 + location (432, 224) + label (object ItemLabel + Parent_View @174 + location (432, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "3801824E03B5" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @175 + location (432, 400) + InterObjView @174 + height 660 + y_coord 600 + Nested FALSE)) + (object InterObjView "$UNNAMED$8" @176 + location (768, 224) + quidu "38018263038D" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @177 + location (768, 400) + InterObjView @176 + height 600 + y_coord 540 + Nested FALSE)) + (object InterObjView "$UNNAMED$9" @178 + location (1104, 224) + quidu "3801827B0002" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @179 + location (1104, 464) + InterObjView @178 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @180 + location (1104, 592) + InterObjView @178 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$10" @181 + location (1440, 224) + quidu "3801829C03CB" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @182 + location (1440, 736) + InterObjView @181 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$11" @183 + location (1776, 224) + quidu "380182BF0303" + width 300 + height 925 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @184 + location (1776, 880) + InterObjView @183 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @185 + location (0, 400) + label (object SegLabel @186 + Parent_View @185 + location (600, 356) + quidu "3801826B0169" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @174 + supplier @176 + Focus_Src @175 + Focus_Entry @177 + origin (448, 400) + terminus (752, 400) + ordinal 0) + (object InterMessView "" @187 + location (0, 592) + label (object SegLabel @188 + Parent_View @187 + location (936, 548) + quidu "3801828D010E" + anchor_loc 1 + nlines 1 + max_width 137 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + client @176 + supplier @178 + Focus_Src @177 + Focus_Entry @180 + origin (784, 592) + terminus (1088, 592) + ordinal 2) + (object InterMessView "" @189 + location (0, 736) + label (object SegLabel @190 + Parent_View @189 + location (1104, 692) + quidu "380182A4003E" + anchor_loc 1 + nlines 1 + max_width 53 + justify 0 + label "getFigure" + pctDist 0.500000 + height 45 + orientation 0) + client @176 + supplier @181 + Focus_Src @177 + Focus_Entry @182 + origin (784, 736) + terminus (1424, 736) + ordinal 3) + (object InterMessView "" @191 + location (0, 880) + label (object SegLabel @192 + Parent_View @191 + location (1272, 836) + quidu "380182C70270" + anchor_loc 1 + nlines 1 + max_width 272 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + client @176 + supplier @183 + Focus_Src @177 + Focus_Entry @184 + origin (784, 880) + terminus (1760, 880) + ordinal 4) + (object InterMessView "" @193 + location (0, 464) + label (object SegLabel @194 + Parent_View @193 + location (936, 420) + quidu "380182DF0219" + anchor_loc 1 + nlines 1 + max_width 169 + justify 0 + label "isEmpty ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @176 + supplier @178 + Focus_Src @177 + Focus_Entry @179 + origin (784, 464) + terminus (1088, 464) + ordinal 1))) + (object ObjectDiagram "ComplexDrawing" + mechanism_ref @4 + quid "3801832902AC" + title "ComplexDrawing" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @195 + location (240, 336) + label (object ItemLabel + Parent_View @195 + location (136, 252) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "3801824E03B5" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$8" @196 + location (896, 384) + quidu "38018263038D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$9" @197 + location (1584, 400) + quidu "3801827B0002" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$10" @198 + location (352, 928) + quidu "3801829C03CB" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$11" @199 + location (1120, 928) + quidu "380182BF0303" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @200 + quidu "3801826B0168" + client @195 + supplier @196 + line_style 0) + (object MessView "" @201 + location (559, 315) + label (object SegLabel @202 + Parent_View @201 + location (563, 271) + quidu "3801826B0169" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @200 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (499, 310) + terminus (619, 320)) + (object LinkView "" @203 + quidu "3801828D010D" + client @196 + supplier @197 + line_style 0) + (object MessView "" @204 + location (1230, 302) + label (object SegLabel @205 + Parent_View @204 + location (1231, 215) + quidu "380182DF0219" + anchor_loc 1 + nlines 1 + max_width 222 + justify 0 + label "isEmpty ( )" + pctDist 0.500000 + height 45 + orientation 0) + label (object SegLabel @206 + Parent_View @204 + location (1231, 258) + quidu "3801828D010E" + anchor_loc 1 + nlines 1 + max_width 244 + justify 0 + label "getItem (int)" + pctDist 0.500000 + height 45 + orientation 0) + DataFlowView @207 + object_arc @203 + pctDist 0.500000 + height 90 + orientation 0 + dir 1 + origin (1170, 301) + terminus (1290, 303)) + (object DataFlowView "" @207 + label (object SegLabel @208 + Parent_View @207 + location (1244, 317) + anchor_loc 3 + nlines 1 + max_width 228 + label "FigureHolder" + pctDist 0.389830 + height 31 + orientation 1) + dir -1 + height 45 + MessView @204) + (object LinkView "" @209 + quidu "380182A4003D" + client @196 + supplier @198 + line_style 0) + (object MessView "" @210 + location (664, 680) + label (object SegLabel @211 + Parent_View @210 + location (696, 711) + quidu "380182A4003E" + anchor_loc 1 + nlines 1 + max_width 203 + justify 0 + label "getFigure" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @209 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (705, 638) + terminus (623, 722)) + (object LinkView "" @212 + quidu "380182C7026F" + client @196 + supplier @199 + line_style 0) + (object MessView "" @213 + location (1047, 633) + label (object SegLabel @214 + Parent_View @213 + location (1281, 602) + quidu "380182C70270" + anchor_loc 1 + nlines 1 + max_width 350 + justify 0 + label "draw (Graphics &)" + pctDist 1.012802 + height 229 + orientation 0) + object_arc @212 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1024, 578) + terminus (1070, 688)))) + (object InteractionDiagram "addComplex" + mechanism_ref @5 + quid "380184D90090" + title "addComplex" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @215 + location (240, 224) + label (object ItemLabel + Parent_View @215 + location (240, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "380184DD03DF" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @216 + location (240, 352) + InterObjView @215 + height 484 + y_coord 424 + Nested FALSE)) + (object InterObjView "$UNNAMED$12" @217 + location (576, 224) + quidu "380184EE022B" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @218 + location (576, 352) + InterObjView @217 + height 424 + y_coord 364 + Nested FALSE)) + (object InterObjView "$UNNAMED$13" @219 + location (1168, 224) + quidu "3801853601CA" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @220 + location (1168, 384) + InterObjView @219 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$14" @221 + location (1504, 224) + quidu "380185540245" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @222 + location (1504, 528) + InterObjView @221 + height 60 + y_coord 0 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @223 + location (1504, 656) + InterObjView @221 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @224 + location (0, 352) + label (object SegLabel @225 + Parent_View @224 + location (408, 308) + quidu "380184F5018C" + anchor_loc 1 + nlines 1 + max_width 225 + justify 0 + label "add(Figure *)" + pctDist 0.500000 + height 45 + orientation 0) + client @215 + supplier @217 + Focus_Src @216 + Focus_Entry @218 + origin (256, 352) + terminus (560, 352) + ordinal 0) + (object InterMessView "" @226 + location (0, 384) + label (object SegLabel @227 + Parent_View @226 + location (872, 340) + quidu "3801853C013E" + anchor_loc 1 + nlines 1 + max_width 191 + justify 0 + label "new FigureHolder(Figure*)" + pctDist 0.500000 + height 45 + orientation 0) + client @217 + supplier @219 + Focus_Src @218 + Focus_Entry @220 + origin (592, 384) + terminus (1152, 384) + ordinal 1) + (object InterMessView "" @228 + location (0, 656) + label (object SegLabel @229 + Parent_View @228 + location (1040, 612) + quidu "380185590244" + anchor_loc 1 + nlines 1 + max_width 147 + justify 0 + label "add (int, T)" + pctDist 0.500000 + height 45 + orientation 0) + client @217 + supplier @221 + Focus_Src @218 + Focus_Entry @223 + origin (592, 656) + terminus (1488, 656) + ordinal 3) + (object InterMessView "" @230 + location (0, 528) + label (object SegLabel @231 + Parent_View @230 + location (1040, 484) + quidu "3801856300FD" + anchor_loc 1 + nlines 1 + max_width 169 + justify 0 + label "getSize ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @217 + supplier @221 + Focus_Src @218 + Focus_Entry @222 + origin (592, 528) + terminus (1488, 528) + ordinal 2))) + (object ObjectDiagram "addComplex" + mechanism_ref @5 + quid "380185700214" + title "addComplex" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @232 + location (320, 240) + label (object ItemLabel + Parent_View @232 + location (216, 156) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "380184DD03DF" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$12" @233 + location (960, 304) + quidu "380184EE022B" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$13" @234 + location (352, 928) + quidu "3801853601CA" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$14" @235 + location (1120, 928) + quidu "380185540245" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @236 + quidu "380184F5018B" + client @232 + supplier @233 + line_style 0) + (object MessView "" @237 + location (634, 227) + label (object SegLabel @238 + Parent_View @237 + location (638, 183) + quidu "380184F5018C" + anchor_loc 1 + nlines 1 + max_width 266 + justify 0 + label "add(Figure *)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @236 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (574, 221) + terminus (694, 233)) + (object LinkView "" @239 + quidu "3801853C013D" + client @233 + supplier @234 + line_style 0) + (object MessView "" @240 + location (695, 640) + label (object SegLabel @241 + Parent_View @240 + location (728, 671) + quidu "3801853C013E" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "new FigureHolder(Figure*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @239 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (736, 597) + terminus (654, 683)) + (object LinkView "" @242 + quidu "380185590243" + client @233 + supplier @235 + line_style 0) + (object MessView "" @243 + location (1084, 603) + label (object SegLabel @244 + Parent_View @243 + location (1252, 520) + quidu "3801856300FD" + anchor_loc 1 + nlines 1 + max_width 209 + justify 0 + label "getSize ( )" + pctDist 0.172332 + height 184 + orientation 0) + label (object SegLabel @245 + Parent_View @243 + location (1252, 563) + quidu "380185590244" + anchor_loc 1 + nlines 1 + max_width 222 + justify 0 + label "add (int, T)" + pctDist 0.519783 + height 172 + orientation 0) + object_arc @242 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1069, 545) + terminus (1099, 661)))))) + (object Class_Category "Graphic" + quid "37DF9D5B01A8" + exportControl "Public" + subsystem "Figures" + quidu "37DF936E0213" + logical_models (list unit_reference_list + (object Class "Graphics" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Graphics.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Graphics.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37EF661102A0" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3801921A032E" + supplier "Point" + quidu "37DF8F130133")) + abstract TRUE + operations (list Operations + (object Operation "drawCircle" + quid "37EF667C0394" + parameters (list Parameters + (object Parameter "center" + type "Point") + (object Parameter "radius" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436810) + (object Operation "drawRectangle" + quid "37EF6AB90330" + parameters (list Parameters + (object Parameter "leftTop" + type "Point") + (object Parameter "rightBottom" + type "Point") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436812) + (object Operation "drawLine" + quid "37EF6E02033A" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int") + (object Parameter "color" + type "Color")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938436813) + (object Operation "getBGColor" + quid "380444A200FD" + result "Color" + concurrency "Sequential" + opExportControl "Public" + uid 939802930))) + (object Class "DebugGraphics" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\DbgGrphc.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\DbgGrphc.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "37F1CB1903A2" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "37F1CB1E0042" + supplier "Graphics" + quidu "37EF661102A0")) + operations (list Operations + (object Operation "drawCircle" + quid "37F1CBF00315" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586296) + (object Operation "drawRectangle" + quid "37F1CC020216" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586297) + (object Operation "drawLine" + quid "37F1CC1500E7" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 938586298)))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37EF660F027F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Graphics" @246 + IncludeAttribute TRUE + IncludeOperation TRUE + location (816, 320) + label (object ItemLabel + Parent_View @246 + location (712, 236) + nlines 2 + max_width 240 + justify 0 + label "Graphics") + quidu "37EF661102A0" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "DebugGraphics" @247 + IncludeAttribute TRUE + IncludeOperation TRUE + location (352, 752) + label (object ItemLabel + Parent_View @247 + location (248, 668) + nlines 2 + max_width 240 + justify 0 + label "DebugGraphics") + quidu "37F1CB1903A2" + annotation 8 + autoResize TRUE) + (object InheritView "" @248 + quidu "37F1CB1E0042" + client @247 + supplier @246 + line_style 0))))) + (object Class_Category "Persist" + quid "381478230091" + exportControl "Public" + subsystem "Figures" + quidu "37DF936E0213" + logical_models (list unit_reference_list + (object Class "Pcircle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Pcircle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Pcircle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "381479110314" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38147C1C03C9" + supplier "PersFig" + quidu "3814794803BE") + (object Inheritance_Relationship + quid "38147D7F008A" + supplier "Circle" + quidu "37DF932402C1")) + operations (list Operations + (object Operation "archive" + quid "381483200032" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866975))) + (object Class "Pline" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Pline.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Pline.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "3814793E035F" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38147C190356" + supplier "PersFig" + quidu "3814794803BE") + (object Inheritance_Relationship + quid "38147D8300F4" + supplier "Line" + quidu "37DF932C0240")) + operations (list Operations + (object Operation "archive" + quid "3814835503B3" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866980))) + (object Class "PersFig" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PersFig.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PersFig.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "3814794803BE" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38147C3203C0" + supplier "Persistent" + quidu "3814796B020F") + (object Inheritance_Relationship + quid "3814830B0082" + supplier "Figure" + quidu "37DF9AF80330"))) + (object Class "Persistent" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Prsstent.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Prsstent.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "3814796B020F" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE)) + quid "38147CDB003E" + label "instMap" + supplier "InstMap" + quidu "38147A4C038F" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1") + static TRUE)) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3814837400B5" + supplier "PStream" + quidu "38147C66005E")) + operations (list Operations + (object Operation "archive" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "381481A603AA" + parameters (list Parameters + (object Parameter "ps" + type "PStream&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866976) + (object Operation "name" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202)) + (object Attribute + tool "cg" + name "OperationIsConst" + value TRUE)) + quid "381481B400F7" + result "char*" + concurrency "Sequential" + opExportControl "Public" + uid 940866977) + (object Operation "clone" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202)) + (object Attribute + tool "cg" + name "OperationIsConst" + value TRUE)) + quid "381481BC02A7" + result "Persistent*" + concurrency "Sequential" + opExportControl "Public" + uid 940866978) + (object Operation "addType" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 203))) + quid "381481C50200" + parameters (list Parameters + (object Parameter "name" + type "char*") + (object Parameter "pers" + type "Persistent*")) + result "Persistent*" + concurrency "Sequential" + opExportControl "Public" + uid 940866979) + (object Operation "clone" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 203))) + quid "38148EC00370" + parameters (list Parameters + (object Parameter "name" + type "char*")) + result "Persistent*" + concurrency "Sequential" + opExportControl "Public" + uid 940866991))) + (object Instantiated_Class "PsMap" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PsMap.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PsMap.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "381479C40308" + instantiation_relationship (object Instantiation_Relationship + quid "38147D10004E" + supplier "MapFake" + quidu "38147B87016C") + parameters (list Parameters + (object Parameter "Persistent*" + type "class") + (object Parameter "int" + type "class"))) + (object Instantiated_Class "InstMap" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\InstMap.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\InstMap.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "38147A4C038F" + instantiation_relationship (object Instantiation_Relationship + quid "38147D0C0356" + supplier "MapFake" + quidu "38147B87016C") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381483E8015C" + supplier "Persistent" + quidu "3814796B020F")) + parameters (list Parameters + (object Parameter "char*" + type "class") + (object Parameter "Persistent*" + type "class"))) + (object Class "fstream" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\fstream.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\fstream.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "38147ACF0261") + (object Parameterized_Class "MapFake" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\MapFake.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\MapFake.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "38147B87016C" + parameters (list Parameters + (object Parameter "KeyType" + type "class") + (object Parameter "DataType" + type "class"))) + (object Class "Prectangle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Prctngle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\Prctngle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "38147BAE00D1" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38147C1F037D" + supplier "PersFig" + quidu "3814794803BE") + (object Inheritance_Relationship + quid "38147D870172" + supplier "Rectangle" + quidu "37DF953C018B")) + operations (list Operations + (object Operation "archive" + quid "3814825D029E" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866981))) + (object Class "PStream" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PStream.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6\\PStream.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "Klassjäkel")) + quid "38147C66005E" + fields (list has_relationship_list + (object Has_Relationship + quid "38147C92006B" + label "psMap" + supplier "PsMap" + quidu "381479C40308" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38147C790336" + supplier "fstream" + quidu "38147ACF0261")) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381483A701C7" + supplier "Persistent" + quidu "3814796B020F")) + operations (list Operations + (object Operation "load" + quid "381484CC0330" + parameters (list Parameters + (object Parameter "filename" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866982) + (object Operation "save" + quid "381484D00160" + parameters (list Parameters + (object Parameter "filename" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866983) + (object Operation "close" + quid "381484D30395" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866984) + (object Operation "isSaving" + quid "381484D702AA" + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 940866985) + (object Operation "archive" + quid "381484E60356" + parameters (list Parameters + (object Parameter "x" + type "Persistent*&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866986) + (object Operation "find" + quid "381484EB0259" + parameters (list Parameters + (object Parameter "x" + type "int")) + result "Persistent*" + concurrency "Sequential" + opExportControl "Public" + uid 940866987) + (object Operation "add" + quid "381484F10289" + parameters (list Parameters + (object Parameter "key" + type "Persistent*") + (object Parameter "data" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940866988) + (object Operation "find" + quid "381484FC0311" + parameters (list Parameters + (object Parameter "p" + type "const Persistent*")) + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940866989) + (object Operation "add" + quid "3814850003AD" + parameters (list Parameters + (object Parameter "data" + type "const Persistent*")) + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940866990)) + class_attributes (list class_attribute_list + (object ClassAttribute "fs" + quid "381484900031" + type "fstream") + (object ClassAttribute "saving" + quid "381484B2012A" + type "bool" + initv "false")))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3814792E038E" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Pcircle" @249 + IncludeAttribute TRUE + IncludeOperation TRUE + location (224, 496) + label (object ItemLabel + Parent_View @249 + location (120, 412) + nlines 2 + max_width 240 + justify 0 + label "Pcircle") + quidu "381479110314" + compartment (object Compartment + Parent_View @249 + location (136, 475) + anchor 2 + nlines 1 + max_width 206 + justify 0) + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Pline" @250 + IncludeAttribute TRUE + IncludeOperation TRUE + location (240, 784) + label (object ItemLabel + Parent_View @250 + location (136, 700) + nlines 2 + max_width 240 + justify 0 + label "Pline") + quidu "3814793E035F" + compartment (object Compartment + Parent_View @250 + location (152, 763) + anchor 2 + nlines 1 + max_width 206 + justify 0) + annotation 8 + autoResize TRUE) + (object ClassView "Class" "PersFig" @251 + IncludeAttribute TRUE + IncludeOperation TRUE + location (720, 512) + label (object ItemLabel + Parent_View @251 + location (616, 428) + nlines 2 + max_width 240 + justify 0 + label "PersFig") + quidu "3814794803BE" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Persistent" @252 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1136, 256) + label (object ItemLabel + Parent_View @252 + location (988, 99) + nlines 2 + max_width 349 + justify 0 + label "Persistent") + quidu "3814796B020F" + compartment (object Compartment + Parent_View @252 + location (988, 162) + anchor 2 + nlines 6 + max_width 347 + justify 0) + width 506 + height 460 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "PsMap" @253 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1648, 1376) + label (object ItemLabel + Parent_View @253 + location (1544, 1292) + nlines 2 + max_width 240 + justify 0 + label "PsMap") + quidu "381479C40308" + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "InstMap" @254 + IncludeAttribute TRUE + IncludeOperation TRUE + location (736, 1024) + label (object ItemLabel + Parent_View @254 + location (632, 940) + nlines 2 + max_width 240 + justify 0 + label "InstMap") + quidu "38147A4C038F" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "fstream" @255 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1728, 128) + label (object ItemLabel + Parent_View @255 + location (1624, 44) + nlines 2 + max_width 240 + justify 0 + label "fstream") + quidu "38147ACF0261" + annotation 8 + autoResize TRUE) + (object ClassView "ParameterizedClass" "MapFake" @256 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1120, 1328) + label (object ItemLabel + Parent_View @256 + location (1016, 1244) + nlines 2 + max_width 240 + justify 0 + label "MapFake") + quidu "38147B87016C" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Prectangle" @257 + IncludeAttribute TRUE + IncludeOperation TRUE + location (352, 176) + label (object ItemLabel + Parent_View @257 + location (248, 92) + nlines 2 + max_width 240 + justify 0 + label "Prectangle") + quidu "38147BAE00D1" + compartment (object Compartment + Parent_View @257 + location (264, 155) + anchor 2 + nlines 1 + max_width 206 + justify 0) + annotation 8 + autoResize TRUE) + (object InheritView "" @258 + quidu "38147C190356" + client @250 + supplier @251 + line_style 0) + (object InheritView "" @259 + quidu "38147C1C03C9" + client @249 + supplier @251 + line_style 0) + (object InheritView "" @260 + quidu "38147C1F037D" + client @257 + supplier @251 + line_style 0) + (object InheritView "" @261 + quidu "38147C3203C0" + client @251 + supplier @252 + line_style 0) + (object ClassView "Class" "PStream" @262 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1872, 704) + label (object ItemLabel + Parent_View @262 + location (1706, 432) + nlines 2 + max_width 393 + justify 0 + label "PStream") + quidu "38147C66005E" + compartment (object Compartment + Parent_View @262 + location (1706, 495) + anchor 2 + nlines 12 + max_width 391 + justify 0) + width 570 + height 790 + annotation 8 + autoResize TRUE) + (object InheritView "" @263 + quidu "38147C790336" + client @262 + supplier @255 + line_style 0) + (object HasView "psMap" @264 + label (object ItemLabel + Parent_View @264 + location (1746, 1172) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "psMap") + quidu "38147C92006B" + client @262 + supplier @253 + line_style 0) + (object InstantiateView "" @265 + quidu "38147D0C0356" + client @254 + supplier @256 + line_style 0) + (object InstantiateView "" @266 + quidu "38147D10004E" + client @253 + supplier @256 + line_style 0) + (object UsesView "" @267 + quidu "3814837400B5" + client @252 + supplier @262 + line_style 0) + (object UsesView "" @268 + quidu "381483A701C7" + client @262 + supplier @252 + line_style 0) + (object HasView "instMap" @269 + label (object ItemLabel + Parent_View @269 + location (921, 691) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "instMap") + quidu "38147CDB003E" + client @252 + supplier @254 + line_style 0) + (object UsesView "" @270 + quidu "381483E8015C" + client @254 + supplier @252 + vertices (list Points + (858, 932) + (1181, 687) + (1150, 447)) + line_style 0)))))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "37DF8EC001B6" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object CategoryView "Figures" @271 + location (176, 208) + label (object ItemLabel + Parent_View @271 + location (32, 124) + nlines 2 + max_width 288 + justify 0 + label "Figures") + quidu "37DF92E603A8" + width 300 + height 180) + (object CategoryView "Graphic" @272 + location (560, 224) + label (object ItemLabel + Parent_View @272 + location (416, 140) + nlines 2 + max_width 288 + justify 0 + label "Graphic") + quidu "37DF9D5B01A8" + width 300 + height 180) + (object CategoryView "Persist" @273 + location (896, 224) + label (object ItemLabel + Parent_View @273 + location (752, 140) + nlines 2 + max_width 288 + justify 0 + label "Persist") + quidu "381478230091" + width 300 + height 180))))) + root_subsystem (object SubSystem "Component View" + quid "37DF8EBF026A" + physical_models (list unit_reference_list + (object SubSystem "Figures" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "H:\\WebDocs\\skola\\Avancerad_C++\\Lab6")) + quid "37DF936E0213" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "37DF9517001F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list))))) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "37DF8EC001CA" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object SubSysView "Figures" @274 + location (336, 832) + label (object ItemLabel + Parent_View @274 + location (192, 763) + nlines 2 + max_width 288 + justify 0 + label "Figures") + quidu "37DF936E0213" + width 300 + height 150))))) + process_structure (object Processes + quid "37DF8EBF026B" + ProcsNDevs (list + (object Process_Diagram "Deployment View" + quid "37DF8EC0018E" + title "Deployment View" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + properties (object Properties + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "roseId" + value "753117540") + (object Attribute + tool "cg" + name "propertyId" + value "809135966") + (object Attribute + tool "cg" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "PrecompiledHeader" + value "") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "CommentWidth" + value 60) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler2.1__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value FALSE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference($limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference($limit)") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler3.0__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "InclusionProtectionSymbol" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value FALSE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateIDLModule" + value FALSE))) + (object Attribute + tool "cg" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value TRUE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")))) + (object Attribute + tool "cg" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value "") + (object Attribute + tool "cg" + name "OperationIsOneWay" + value FALSE) + (object Attribute + tool "cg" + name "Context" + value "") + (object Attribute + tool "cg" + name "Raises" + value ""))) + (object Attribute + tool "cg" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "Ordered" + value TRUE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$supplier") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$relationship") + (object Attribute + tool "cg" + name "SetName" + value "set_$relationship") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "SelectorName" + value "") + (object Attribute + tool "cg" + name "SelectorType" + value "") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedHasRelType" + value ("HasRelTypeSet" 47)) + (object Attribute + tool "cg" + name "HasRelTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass"))) + (object Attribute + tool "cg" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InstanceArguments" + value ""))) + (object Attribute + tool "cg" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$target") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "ContainerGet" + value "$data.get($keys)") + (object Attribute + tool "cg" + name "ContainerSet" + value "$data.set($keys,$value)") + (object Attribute + tool "cg" + name "QualifiedContainer" + value "") + (object Attribute + tool "cg" + name "AssocClassContainer" + value "$supplier *") + (object Attribute + tool "cg" + name "AssocClassInitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$target") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "SetName" + value "set_$target") + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetSetByReference" + value ("QualifiedGetSetByReferenceSet" 2)) + (object Attribute + tool "cg" + name "QualifiedGetSetByReferenceSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_GetSetByReference" + value 2))) + (object Attribute + tool "cg" + name "GenerateQualifiedGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetName" + value "get_$target") + (object Attribute + tool "cg" + name "QualifiedGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineQualifiedGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateQualifiedSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedSetName" + value "set_$target") + (object Attribute + tool "cg" + name "QualifiedSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineQualifiedSet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassDataMember" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassDataMemberName" + value "$target") + (object Attribute + tool "cg" + name "AssocClassDataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "AssocClassDataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "AssocClassDataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "AssocClassGetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GenerateAssocClassGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetName" + value "get_$target") + (object Attribute + tool "cg" + name "AssocClassGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineAssocClassGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassSetName" + value "set_$target") + (object Attribute + tool "cg" + name "AssocClassSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineAssocClassSet" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassForwardReferenceOnly" + value TRUE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedRoleType" + value ("AssocTypeSet" 47)) + (object Attribute + tool "cg" + name "AssocTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE))) + (object Attribute + tool "cg" + name "default__Uses" + value (list Attribute_Set + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "BodyReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE))) + (object Attribute + tool "cg" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "DirectoryIsOnSearchList" + value FALSE) + (object Attribute + tool "cg" + name "PrecompiledHeader" + value ""))) + (object Attribute + tool "DDL" + name "propertyId" + value "809135966") + (object Attribute + tool "DDL" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "DataBase" + value ("DataBaseSet" 800)) + (object Attribute + tool "DDL" + name "DataBaseSet" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ANSI" + value 800) + (object Attribute + tool "DDL" + name "Oracle" + value 801) + (object Attribute + tool "DDL" + name "SQLServer" + value 802) + (object Attribute + tool "DDL" + name "Sybase" + value 803) + (object Attribute + tool "DDL" + name "Watcom" + value 804))) + (object Attribute + tool "DDL" + name "PrimaryKeyColumnName" + value "Id") + (object Attribute + tool "DDL" + name "PrimaryKeyColumnType" + value "NUMBER(5)") + (object Attribute + tool "DDL" + name "ViewName" + value "V_") + (object Attribute + tool "DDL" + name "TableName" + value "T_") + (object Attribute + tool "DDL" + name "InheritSuffix" + value "_V") + (object Attribute + tool "DDL" + name "DropClause" + value FALSE) + (object Attribute + tool "DDL" + name "BaseViews" + value FALSE) + (object Attribute + tool "DDL" + name "DDLScriptFilename" + value "DDL1.SQL"))) + (object Attribute + tool "DDL" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ColumnType" + value "VARCHAR") + (object Attribute + tool "DDL" + name "Length" + value "") + (object Attribute + tool "DDL" + name "NullsOK" + value TRUE) + (object Attribute + tool "DDL" + name "PrimaryKey" + value FALSE) + (object Attribute + tool "DDL" + name "Unique" + value FALSE) + (object Attribute + tool "DDL" + name "CompositeUnique" + value FALSE) + (object Attribute + tool "DDL" + name "CheckConstraint" + value ""))) + (object Attribute + tool "cg" + name "default__Category" + value (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateIDLModule" + value TRUE) + (object Attribute + tool "cg" + name "ModuleName" + value (value Text "")))) + (object Attribute + tool "cg" + name "variabler__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value "") + (object Attribute + tool "cg" + name "OperationIsOneWay" + value FALSE) + (object Attribute + tool "cg" + name "Context" + value "") + (object Attribute + tool "cg" + name "Raises" + value ""))) + (object Attribute + tool "cg" + name "variabler__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "variabler__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE))) + (object Attribute + tool "cg" + name "Klassjäkel__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81)))))) + quid "37DF8EBF026C")) diff --git a/Lab6/circle.cpp b/Lab6/circle.cpp new file mode 100644 index 0000000..93307a9 --- /dev/null +++ b/Lab6/circle.cpp @@ -0,0 +1,105 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Circle; Pseudo Package body +//## Subsystem: Figures +//## Source file: Circle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Circle +#include "Circle.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Circle + + + +Circle::Circle() + //## begin Circle::Circle%.hasinit preserve=no + //## end Circle::Circle%.hasinit + //## begin Circle::Circle%.initialization preserve=yes + //## end Circle::Circle%.initialization +{ + //## begin Circle::Circle%.body preserve=yes + //## end Circle::Circle%.body +} + +Circle::Circle (int x, int y, int r, Color color) + //## begin Circle::Circle%939623931.hasinit preserve=no + //## end Circle::Circle%939623931.hasinit + //## begin Circle::Circle%939623931.initialization preserve=yes + //## end Circle::Circle%939623931.initialization +{ + //## begin Circle::Circle%939623931.body preserve=yes + setColor(color); + center.setx(x); + center.sety(y); + radius=r; + //## end Circle::Circle%939623931.body +} + + +Circle::~Circle() +{ + //## begin Circle::~Circle%.body preserve=yes + //## end Circle::~Circle%.body +} + + +//## Other Operations (implementation) +void Circle::draw (Graphics &g) +{ + //## begin Circle::draw%937398670.body preserve=yes + g.drawCircle(center, radius, getColor()); + //## end Circle::draw%937398670.body +} + +void Circle::erase (Graphics &g) +{ + //## begin Circle::erase%937398671.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Circle::erase%937398671.body +} + +Figure * Circle::clone () +{ + //## begin Circle::clone%937398683.body preserve=yes + return new Circle(*this); + //## end Circle::clone%937398683.body +} + +// Additional Declarations + //## begin Circle.declarations preserve=yes + //## end Circle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Circle::getColor%939797853.body preserve=no + return color; +//## end Circle::getColor%939797853.body + +//## begin Circle::setColor%939797854.body preserve=no + color=src; + +//## end Circle::setColor%939797854.body + +#endif diff --git a/Lab6/circle.h b/Lab6/circle.h new file mode 100644 index 0000000..d92419a --- /dev/null +++ b/Lab6/circle.h @@ -0,0 +1,116 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Circle; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Circle.h + +#ifndef Circle_h +#define Circle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "Point.h" +// Figure +#include "Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Circle +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Circle : virtual public Figure //## Inherits: +{ + //## begin Circle.initialDeclarations preserve=yes + //## end Circle.initialDeclarations + + public: + //## Constructors (generated) + Circle(); + + //## Constructors (specified) + //## Operation: Circle%939623931 + Circle (int x, int y, int r, Color color); + + //## Destructor (generated) + ~Circle(); + + + //## Other Operations (specified) + //## Operation: draw%937398670 + void draw (Graphics &g); + + //## Operation: erase%937398671 + void erase (Graphics &g); + + //## Operation: clone%937398683 + Figure * clone (); + + // Additional Public Declarations + //## begin Circle.public preserve=yes + const Point& getCenter() const {return center;} + void setCenter(int x, int y){center.setx(x), center.sety(y);} + const int getRad() const {return radius;} + void setRad(int value) { radius=value;} + Color getColor() {return Figure::getColor();} + void setColor(Color c) {Figure::setColor(c);} + + + //## end Circle.public + + protected: + // Additional Protected Declarations + //## begin Circle.protected preserve=yes + //## end Circle.protected + + private: + // Additional Private Declarations + //## begin Circle.private preserve=yes + //## end Circle.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Circle::center.has + //## begin Circle::center.has preserve=no private: Point {1 -> 1VO} + Point center; + //## end Circle::center.has + + // Data Members for Class Attributes + + //## Attribute: radius + //## begin Circle::radius.attr preserve=no private: int {U} + int radius; + //## end Circle::radius.attr + + // Additional Implementation Declarations + //## begin Circle.implementation preserve=yes + //## end Circle.implementation + +}; + +//## begin Circle.postscript preserve=yes +//## end Circle.postscript + +// Class Circle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/cmplxfgr.cpp b/Lab6/cmplxfgr.cpp new file mode 100644 index 0000000..9ec46df --- /dev/null +++ b/Lab6/cmplxfgr.cpp @@ -0,0 +1,87 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComplexFigure; Pseudo Package body +//## Subsystem: Figures +//## Source file: CmplxFgr.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// ComplexFigure +#include "CmplxFgr.h" +//## begin module.additionalDeclarations preserve=yes +#include "Graphics.h" +//## end module.additionalDeclarations + + +// Class ComplexFigure + + +ComplexFigure::ComplexFigure() + //## begin ComplexFigure::ComplexFigure%.hasinit preserve=no + //## end ComplexFigure::ComplexFigure%.hasinit + //## begin ComplexFigure::ComplexFigure%.initialization preserve=yes + //## end ComplexFigure::ComplexFigure%.initialization +{ + //## begin ComplexFigure::ComplexFigure%.body preserve=yes + //## end ComplexFigure::ComplexFigure%.body +} + + +ComplexFigure::~ComplexFigure() +{ + //## begin ComplexFigure::~ComplexFigure%.body preserve=yes + //## end ComplexFigure::~ComplexFigure%.body +} + + + +//## Other Operations (implementation) +void ComplexFigure::draw (Graphics &g) +{ + //## begin ComplexFigure::draw%939104770.body preserve=yes + for(int i = 0; i < myFList.getSize(); i++) + { + FigureHolder fh = myFList.getItem(i); + Figure* f = fh.getFigure(); + f->draw(g); + } + //## end ComplexFigure::draw%939104770.body +} + +void ComplexFigure::erase (Graphics &g) +{ + //## begin ComplexFigure::erase%939104771.body preserve=yes + //## end ComplexFigure::erase%939104771.body +} + +Figure * ComplexFigure::clone () +{ + //## begin ComplexFigure::clone%939104772.body preserve=yes + return new ComplexFigure(*this); + //## end ComplexFigure::clone%939104772.body +} + +void ComplexFigure::add (FigureHolder figure) +{ + //## begin ComplexFigure::add%939734506.body preserve=yes + myFList.add(myFList.getSize(), figure); + //## end ComplexFigure::add%939734506.body +} + +// Additional Declarations + //## begin ComplexFigure.declarations preserve=yes + //## end ComplexFigure.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/cmplxfgr.h b/Lab6/cmplxfgr.h new file mode 100644 index 0000000..8f450be --- /dev/null +++ b/Lab6/cmplxfgr.h @@ -0,0 +1,100 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComplexFigure; Pseudo Package specification +//## Subsystem: Figures +//## Source file: CmplxFgr.h + +#ifndef CmplxFgr_h +#define CmplxFgr_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "Figure.h" +// FList +#include "FList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: ComplexFigure +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class ComplexFigure : public Figure //## Inherits: +{ + //## begin ComplexFigure.initialDeclarations preserve=yes + //## end ComplexFigure.initialDeclarations + + public: + //## Constructors (generated) + ComplexFigure(); + + //## Destructor (generated) + ~ComplexFigure(); + + + //## Other Operations (specified) + //## Operation: draw%939104770 + void draw (Graphics &g); + + //## Operation: erase%939104771 + void erase (Graphics &g); + + //## Operation: clone%939104772 + Figure * clone (); + + //## Operation: add%939734506 + void add (FigureHolder figure); + + // Additional Public Declarations + //## begin ComplexFigure.public preserve=yes + //## end ComplexFigure.public + + protected: + // Additional Protected Declarations + //## begin ComplexFigure.protected preserve=yes + //## end ComplexFigure.protected + + private: + // Additional Private Declarations + //## begin ComplexFigure.private preserve=yes + //## end ComplexFigure.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation ComplexFigure::myFList.has + //## begin ComplexFigure::myFList.has preserve=no public: FList {1 -> 1VO} + FList myFList; + //## end ComplexFigure::myFList.has + + // Additional Implementation Declarations + //## begin ComplexFigure.implementation preserve=yes + //## end ComplexFigure.implementation + +}; + +//## begin ComplexFigure.postscript preserve=yes +//## end ComplexFigure.postscript + +// Class ComplexFigure + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/dbggrphc.cpp b/Lab6/dbggrphc.cpp new file mode 100644 index 0000000..283434c --- /dev/null +++ b/Lab6/dbggrphc.cpp @@ -0,0 +1,71 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: DebugGraphics; Pseudo Package body +//## Subsystem: Figures +//## Source file: DbgGrphc.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// DebugGraphics +#include "DbgGrphc.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class DebugGraphics + +DebugGraphics::DebugGraphics() + //## begin DebugGraphics::DebugGraphics%.hasinit preserve=no + //## end DebugGraphics::DebugGraphics%.hasinit + //## begin DebugGraphics::DebugGraphics%.initialization preserve=yes + //## end DebugGraphics::DebugGraphics%.initialization +{ + //## begin DebugGraphics::DebugGraphics%.body preserve=yes + //## end DebugGraphics::DebugGraphics%.body +} + + +DebugGraphics::~DebugGraphics() +{ + //## begin DebugGraphics::~DebugGraphics%.body preserve=yes + //## end DebugGraphics::~DebugGraphics%.body +} + + + +//## Other Operations (implementation) +void DebugGraphics::drawCircle () +{ + //## begin DebugGraphics::drawCircle%938586296.body preserve=yes + //## end DebugGraphics::drawCircle%938586296.body +} + +void DebugGraphics::drawRectangle () +{ + //## begin DebugGraphics::drawRectangle%938586297.body preserve=yes + //## end DebugGraphics::drawRectangle%938586297.body +} + +void DebugGraphics::drawLine () +{ + //## begin DebugGraphics::drawLine%938586298.body preserve=yes + //## end DebugGraphics::drawLine%938586298.body +} + +// Additional Declarations + //## begin DebugGraphics.declarations preserve=yes + //## end DebugGraphics.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/dbggrphc.h b/Lab6/dbggrphc.h new file mode 100644 index 0000000..8053ef0 --- /dev/null +++ b/Lab6/dbggrphc.h @@ -0,0 +1,89 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: DebugGraphics; Pseudo Package specification +//## Subsystem: Figures +//## Source file: DbgGrphc.h + +#ifndef DbgGrphc_h +#define DbgGrphc_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphics.h" +//## begin module.additionalDeclarations preserve=yes +#include "DbgGrphc.h" +//## end module.additionalDeclarations + + +//## Class: DebugGraphics +//## Category: Graphic +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class DebugGraphics : public Graphics //## Inherits: +{ + //## begin DebugGraphics.initialDeclarations preserve=yes + //## end DebugGraphics.initialDeclarations + + public: + //## Constructors (generated) + DebugGraphics(); + + //## Destructor (generated) + ~DebugGraphics(); + + + //## Other Operations (specified) + //## Operation: drawCircle%938586296 + void drawCircle (); + + //## Operation: drawRectangle%938586297 + void drawRectangle (); + + //## Operation: drawLine%938586298 + void drawLine (); + + // Additional Public Declarations + //## begin DebugGraphics.public preserve=yes + //## end DebugGraphics.public + + protected: + // Additional Protected Declarations + //## begin DebugGraphics.protected preserve=yes + //## end DebugGraphics.protected + + private: + // Additional Private Declarations + //## begin DebugGraphics.private preserve=yes + //## end DebugGraphics.private + + private: //## implementation + // Additional Implementation Declarations + //## begin DebugGraphics.implementation preserve=yes + //## end DebugGraphics.implementation + +}; + +//## begin DebugGraphics.postscript preserve=yes +//## end DebugGraphics.postscript + +// Class DebugGraphics + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/fgrhlder.cpp b/Lab6/fgrhlder.cpp new file mode 100644 index 0000000..a2cf03b --- /dev/null +++ b/Lab6/fgrhlder.cpp @@ -0,0 +1,61 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FigureHolder; Pseudo Package body +//## Subsystem: Figures +//## Source file: FgrHlder.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// FigureHolder +#include "FgrHlder.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class FigureHolder + + +FigureHolder::FigureHolder() + //## begin FigureHolder::FigureHolder%.hasinit preserve=no + //## end FigureHolder::FigureHolder%.hasinit + //## begin FigureHolder::FigureHolder%.initialization preserve=yes + //## end FigureHolder::FigureHolder%.initialization +{ + //## begin FigureHolder::FigureHolder%.body preserve=yes + //## end FigureHolder::FigureHolder%.body +} + + +FigureHolder::~FigureHolder() +{ + //## begin FigureHolder::~FigureHolder%.body preserve=yes + //## end FigureHolder::~FigureHolder%.body +} + + + +//## Other Operations (implementation) +Figure * FigureHolder::getFigure () +{ + //## begin FigureHolder::getFigure%939734505.body preserve=yes + return myFigure; + //## end FigureHolder::getFigure%939734505.body +} + +// Additional Declarations + //## begin FigureHolder.declarations preserve=yes + //## end FigureHolder.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/fgrhlder.h b/Lab6/fgrhlder.h new file mode 100644 index 0000000..1510430 --- /dev/null +++ b/Lab6/fgrhlder.h @@ -0,0 +1,94 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FigureHolder; Pseudo Package specification +//## Subsystem: Figures +//## Source file: FgrHlder.h + +#ifndef FgrHlder_h +#define FgrHlder_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: FigureHolder +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class FigureHolder +{ + //## begin FigureHolder.initialDeclarations preserve=yes +public: + FigureHolder(Figure& f) + { + myFigure = f.clone(); + } + //## end FigureHolder.initialDeclarations + + public: + //## Constructors (generated) + FigureHolder(); + + //## Destructor (generated) + ~FigureHolder(); + + + //## Other Operations (specified) + //## Operation: getFigure%939734505 + Figure * getFigure (); + + // Additional Public Declarations + //## begin FigureHolder.public preserve=yes + //## end FigureHolder.public + + protected: + // Additional Protected Declarations + //## begin FigureHolder.protected preserve=yes + //## end FigureHolder.protected + + private: + // Additional Private Declarations + //## begin FigureHolder.private preserve=yes + //## end FigureHolder.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation FigureHolder::myFigure.has + //## begin FigureHolder::myFigure.has preserve=no public: Figure {1 -> 1RO} + Figure *myFigure; + //## end FigureHolder::myFigure.has + + // Additional Implementation Declarations + //## begin FigureHolder.implementation preserve=yes + //## end FigureHolder.implementation + +}; + +//## begin FigureHolder.postscript preserve=yes +//## end FigureHolder.postscript + +// Class FigureHolder + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/figure.cpp b/Lab6/figure.cpp new file mode 100644 index 0000000..b8e8045 --- /dev/null +++ b/Lab6/figure.cpp @@ -0,0 +1,68 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Figure; Pseudo Package body +//## Subsystem: Figures +//## Source file: Figure.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Figure + + +Figure::Figure() + //## begin Figure::Figure%.hasinit preserve=no + //## end Figure::Figure%.hasinit + //## begin Figure::Figure%.initialization preserve=yes + //## end Figure::Figure%.initialization +{ + //## begin Figure::Figure%.body preserve=yes + //## end Figure::Figure%.body +} + + +Figure::~Figure() +{ + //## begin Figure::~Figure%.body preserve=yes + //## end Figure::~Figure%.body +} + + + +//## Other Operations (implementation) +Color Figure::getColor () +{ + //## begin Figure::getColor%939623933.body preserve=yes + return color; + //## end Figure::getColor%939623933.body +} + +void Figure::setColor (Color c) +{ + //## begin Figure::setColor%939623934.body preserve=yes + color=c; + //## end Figure::setColor%939623934.body +} + +// Additional Declarations + //## begin Figure.declarations preserve=yes + //## end Figure.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/figure.h b/Lab6/figure.h new file mode 100644 index 0000000..9532b0a --- /dev/null +++ b/Lab6/figure.h @@ -0,0 +1,103 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Figure; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Figure.h + +#ifndef Figure_h +#define Figure_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphics.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Figure; Abstract +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Graphics { -> } + +class Figure +{ + //## begin Figure.initialDeclarations preserve=yes + //## end Figure.initialDeclarations + + public: + //## Constructors (generated) + Figure(); + + //## Destructor (generated) + virtual ~Figure(); + + + //## Other Operations (specified) + //## Operation: draw%937398679 + virtual void draw (Graphics &g) = 0; + + //## Operation: erase%937398680 + virtual void erase (Graphics &g) = 0; + + //## Operation: clone%937398681 + virtual Figure * clone () = 0; + + //## Operation: getColor%939623933 + Color getColor (); + + //## Operation: setColor%939623934 + void setColor (Color c); + + // Additional Public Declarations + //## begin Figure.public preserve=yes + //## end Figure.public + + protected: + // Additional Protected Declarations + //## begin Figure.protected preserve=yes + //## end Figure.protected + + private: + // Additional Private Declarations + //## begin Figure.private preserve=yes + //## end Figure.private + + private: //## implementation + // Data Members for Class Attributes + + //## Attribute: color + //## begin Figure::color.attr preserve=no private: Color {U} + Color color; + //## end Figure::color.attr + + // Additional Implementation Declarations + //## begin Figure.implementation preserve=yes + //## end Figure.implementation + +}; + +//## begin Figure.postscript preserve=yes +//## end Figure.postscript + +// Class Figure + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/flist.cpp b/Lab6/flist.cpp new file mode 100644 index 0000000..146585f --- /dev/null +++ b/Lab6/flist.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FList; Pseudo Package body +//## Subsystem: Figures +//## Source file: FList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// FList +#include "FList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin FList.instantiation preserve=no +template class List< FigureHolder >; +//## end FList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/flist.h b/Lab6/flist.h new file mode 100644 index 0000000..e929e39 --- /dev/null +++ b/Lab6/flist.h @@ -0,0 +1,48 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: FList; Pseudo Package specification +//## Subsystem: Figures +//## Source file: FList.h + +#ifndef FList_h +#define FList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "List.h" +// FigureHolder +#include "FgrHlder.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: FList; Instantiated Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; FigureHolder { -> } + +typedef List< FigureHolder > FList; + +//## begin FList.postscript preserve=yes +//## end FList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/fstream.cpp b/Lab6/fstream.cpp new file mode 100644 index 0000000..c2cc8fa --- /dev/null +++ b/Lab6/fstream.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: fstream; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab6\fstream.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// fstream +#include "H:\WebDocs\skola\Avancerad_C++\Lab6\fstream.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class fstream + +fstream::fstream() + //## begin fstream::fstream%.hasinit preserve=no + //## end fstream::fstream%.hasinit + //## begin fstream::fstream%.initialization preserve=yes + //## end fstream::fstream%.initialization +{ + //## begin fstream::fstream%.body preserve=yes + //## end fstream::fstream%.body +} + + +fstream::~fstream() +{ + //## begin fstream::~fstream%.body preserve=yes + //## end fstream::~fstream%.body +} + + +// Additional Declarations + //## begin fstream.declarations preserve=yes + //## end fstream.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/fstream.h b/Lab6/fstream.h new file mode 100644 index 0000000..149f196 --- /dev/null +++ b/Lab6/fstream.h @@ -0,0 +1,75 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: fstream; Pseudo Package specification +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab6\fstream.h + +#ifndef fstream_h +#define fstream_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: fstream +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class fstream +{ + //## begin fstream.initialDeclarations preserve=yes + //## end fstream.initialDeclarations + + public: + //## Constructors (generated) + fstream(); + + //## Destructor (generated) + ~fstream(); + + // Additional Public Declarations + //## begin fstream.public preserve=yes + //## end fstream.public + + protected: + // Additional Protected Declarations + //## begin fstream.protected preserve=yes + //## end fstream.protected + + private: + // Additional Private Declarations + //## begin fstream.private preserve=yes + //## end fstream.private + + private: //## implementation + // Additional Implementation Declarations + //## begin fstream.implementation preserve=yes + //## end fstream.implementation + +}; + +//## begin fstream.postscript preserve=yes +//## end fstream.postscript + +// Class fstream + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/graphics.cpp b/Lab6/graphics.cpp new file mode 100644 index 0000000..585f457 --- /dev/null +++ b/Lab6/graphics.cpp @@ -0,0 +1,82 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Graphics; Pseudo Package body +//## Subsystem: Figures +//## Source file: Graphics.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphics.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Graphics + +Graphics::Graphics() + //## begin Graphics::Graphics%.hasinit preserve=no + //## end Graphics::Graphics%.hasinit + //## begin Graphics::Graphics%.initialization preserve=yes + //## end Graphics::Graphics%.initialization +{ + //## begin Graphics::Graphics%.body preserve=yes + //## end Graphics::Graphics%.body +} + + +Graphics::~Graphics() +{ + //## begin Graphics::~Graphics%.body preserve=yes + //## end Graphics::~Graphics%.body +} + + + +//## Other Operations (implementation) +void Graphics::drawCircle (Point center, int radius, Color color) +{ + //## begin Graphics::drawCircle%938436810.body preserve=yes + cout << "\nCircle drawn with ("<; Point { -> } + +class Graphics +{ + //## begin Graphics.initialDeclarations preserve=yes + //## end Graphics.initialDeclarations + + public: + //## Constructors (generated) + Graphics(); + + //## Destructor (generated) + ~Graphics(); + + + //## Other Operations (specified) + //## Operation: drawCircle%938436810 + void drawCircle (Point center, int radius, Color color); + + //## Operation: drawRectangle%938436812 + void drawRectangle (Point leftTop, Point rightBottom, Color color); + + //## Operation: drawLine%938436813 + void drawLine (int x1, int y1, int x2, int y2, Color color); + + //## Operation: getBGColor%939802930 + Color getBGColor (); + + // Additional Public Declarations + //## begin Graphics.public preserve=yes + //## end Graphics.public + + protected: + // Additional Protected Declarations + //## begin Graphics.protected preserve=yes + //## end Graphics.protected + + private: + // Additional Private Declarations + //## begin Graphics.private preserve=yes + //## end Graphics.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Graphics.implementation preserve=yes + //## end Graphics.implementation + +}; + +//## begin Graphics.postscript preserve=yes +//## end Graphics.postscript + +// Class Graphics + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/h.cpp b/Lab6/h.cpp new file mode 100644 index 0000000..a9f74d4 --- /dev/null +++ b/Lab6/h.cpp @@ -0,0 +1,15 @@ +Pcircle::Pcircle(int xPos, int yPos, int _radius, Color _color) + //## begin Pcircle::Pcircle%.hasinit preserve=no + //## end Pcircle::Pcircle%.hasinit + //## begin Pcircle::Pcircle%.initialization preserve=yes + //## end Pcircle::Pcircle%.initialization +{ + //## begin Pcircle::Pcircle%.body preserve=yes + // Circle::Circle(xPos, yPos, _radius, _color); + + _pobj = Persistent::addType("Pcircle", new Pcircle); + set_center(xPos, yPos); + set_radius(_radius); + set_color(_color); + //## end Pcircle::Pcircle%.body +} diff --git a/Lab6/instmap.cpp b/Lab6/instmap.cpp new file mode 100644 index 0000000..1d9ee47 --- /dev/null +++ b/Lab6/instmap.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: InstMap; Pseudo Package body +//## Subsystem: Figures +//## Source file: InstMap.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// InstMap +#include "InstMap.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin InstMap.instantiation preserve=no +template class Mapfake< Str,Persistent* >; +//## end InstMap.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/instmap.h b/Lab6/instmap.h new file mode 100644 index 0000000..cf51f2a --- /dev/null +++ b/Lab6/instmap.h @@ -0,0 +1,49 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: InstMap; Pseudo Package specification +//## Subsystem: Figures +//## Source file: InstMap.h + +#ifndef InstMap_h +#define InstMap_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include "str.h" +//## end module.includes + +// MapFake +#include "MapFake.h" +// Persistent +//#include "Prsstent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: InstMap; Instantiated Class +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Persistent { -> } +class Persistent; +typedef Mapfake< Str,Persistent* > InstMap; + +//## begin InstMap.postscript preserve=yes +//## end InstMap.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/lab6.dsp b/Lab6/lab6.dsp new file mode 100644 index 0000000..f6c0477 --- /dev/null +++ b/Lab6/lab6.dsp @@ -0,0 +1,272 @@ +# Microsoft Developer Studio Project File - Name="lab6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=lab6 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "lab6.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "lab6.mak" CFG="lab6 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "lab6 - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "lab6 - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "lab6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x41d /d "NDEBUG" +# ADD RSC /l 0x41d /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "lab6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W1 /Gm /vmg /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x41d /d "_DEBUG" +# ADD RSC /l 0x41d /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "lab6 - Win32 Release" +# Name "lab6 - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Circle.cpp +# End Source File +# Begin Source File + +SOURCE=.\CmplxFgr.cpp +# End Source File +# Begin Source File + +SOURCE=.\DbgGrphc.cpp +# End Source File +# Begin Source File + +SOURCE=.\FgrHlder.cpp +# End Source File +# Begin Source File + +SOURCE=.\Figure.cpp +# End Source File +# Begin Source File + +SOURCE=.\FList.cpp +# End Source File +# Begin Source File + +SOURCE=.\Graphics.cpp +# End Source File +# Begin Source File + +SOURCE=.\InstMap.cpp +# End Source File +# Begin Source File + +SOURCE=.\Line.cpp +# End Source File +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pcircle.cpp +# End Source File +# Begin Source File + +SOURCE=.\PersFig.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pline.cpp +# End Source File +# Begin Source File + +SOURCE=.\pList.cpp +# End Source File +# Begin Source File + +SOURCE=.\Point.cpp +# End Source File +# Begin Source File + +SOURCE=.\Prctngle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Prsstent.cpp +# End Source File +# Begin Source File + +SOURCE=.\PsMap.cpp +# End Source File +# Begin Source File + +SOURCE=.\PStream.cpp +# End Source File +# Begin Source File + +SOURCE=.\Rectngle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Str.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Circle.h +# End Source File +# Begin Source File + +SOURCE=.\CmplxFgr.h +# End Source File +# Begin Source File + +SOURCE=.\DbgGrphc.h +# End Source File +# Begin Source File + +SOURCE=.\FgrHlder.h +# End Source File +# Begin Source File + +SOURCE=.\Figure.h +# End Source File +# Begin Source File + +SOURCE=.\FList.h +# End Source File +# Begin Source File + +SOURCE=.\Graphics.h +# End Source File +# Begin Source File + +SOURCE=.\InstMap.h +# End Source File +# Begin Source File + +SOURCE=.\Line.h +# End Source File +# Begin Source File + +SOURCE=.\List.h +# End Source File +# Begin Source File + +SOURCE=.\MapFake.h +# End Source File +# Begin Source File + +SOURCE=.\Node.h +# End Source File +# Begin Source File + +SOURCE=.\Pcircle.h +# End Source File +# Begin Source File + +SOURCE=.\PersFig.h +# End Source File +# Begin Source File + +SOURCE=.\Pline.h +# End Source File +# Begin Source File + +SOURCE=.\pList.h +# End Source File +# Begin Source File + +SOURCE=.\Point.h +# End Source File +# Begin Source File + +SOURCE=.\Prctngle.h +# End Source File +# Begin Source File + +SOURCE=.\Prsstent.h +# End Source File +# Begin Source File + +SOURCE=.\PsMap.h +# End Source File +# Begin Source File + +SOURCE=.\PStream.h +# End Source File +# Begin Source File + +SOURCE=.\Rectngle.h +# End Source File +# Begin Source File + +SOURCE=.\Str.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/Lab6/lab6.dsw b/Lab6/lab6.dsw new file mode 100644 index 0000000..bc5eaf8 --- /dev/null +++ b/Lab6/lab6.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "lab6"=".\lab6.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Lab6/line.cpp b/Lab6/line.cpp new file mode 100644 index 0000000..2492aa7 --- /dev/null +++ b/Lab6/line.cpp @@ -0,0 +1,120 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Line; Pseudo Package body +//## Subsystem: Figures +//## Source file: Line.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Line +#include "Line.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Line + + +Line::Line (int x1, int y1, int x2, int y2, Color color) + //## begin Line::Line%939623930.hasinit preserve=no + //## end Line::Line%939623930.hasinit + //## begin Line::Line%939623930.initialization preserve=yes + //## end Line::Line%939623930.initialization +{ + //## begin Line::Line%939623930.body preserve=yes + setColor(color); + + Point start, end; + start.setx(x1); + start.sety(y1); + end.setx(x2); + end.sety(y2); + myPoints.add(myPoints.getSize(), start); + myPoints.add(myPoints.getSize(), end); + //## end Line::Line%939623930.body +} + + +Line::~Line() +{ + //## begin Line::~Line%.body preserve=yes + //## end Line::~Line%.body +} + + + +//## Other Operations (implementation) +void Line::draw (Graphics &g) +{ + //## begin Line::draw%937398668.body preserve=yes + Point start,end; + int i = 0; + if(!myPoints.isEmpty()) + start = myPoints.getItem(i++); + while(i < myPoints.getSize()) + { + end = myPoints.getItem(i++); + g.drawLine(start.getx(),start.gety(),end.getx(),end.gety(),getColor()); + start = end; + } + //## end Line::draw%937398668.body +} + +void Line::erase (Graphics &g) +{ + //## begin Line::erase%937398669.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Line::erase%937398669.body +} + +Figure * Line::clone () +{ + //## begin Line::clone%937398682.body preserve=yes + return new Line(*this); + //## end Line::clone%937398682.body +} + +void Line::add (int x, int y) +{ + //## begin Line::add%939734504.body preserve=yes + Point start; + start.setx(x); + start.sety(y); + myPoints.add(myPoints.getSize(), start); + //## end Line::add%939734504.body +} + +// Additional Declarations + //## begin Line.declarations preserve=yes + //## end Line.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Line::setColor%939797857.body preserve=no + color=src; + +//## end Line::setColor%939797857.body + +//## begin Line::getColor%939797858.body preserve=no + return color; +//## end Line::getColor%939797858.body + +#endif diff --git a/Lab6/line.h b/Lab6/line.h new file mode 100644 index 0000000..7cea011 --- /dev/null +++ b/Lab6/line.h @@ -0,0 +1,102 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Line; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Line.h + +#ifndef Line_h +#define Line_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// pList +#include "pList.h" +// Figure +#include "Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Line +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Line : public Figure //## Inherits: +{ + //## begin Line.initialDeclarations preserve=yes + //## end Line.initialDeclarations + + public: + //## Constructors (specified) + //## Operation: Line%939623930 + Line (int x1, int y1, int x2, int y2, Color color); + Line(){}; + + //## Destructor (generated) + ~Line(); + + + //## Other Operations (specified) + //## Operation: draw%937398668 + void draw (Graphics &g); + + //## Operation: erase%937398669 + void erase (Graphics &g); + + //## Operation: clone%937398682 + Figure * clone (); + + //## Operation: add%939734504 + void add (int x, int y); + + // Additional Public Declarations + //## begin Line.public preserve=yes + //## end Line.public + + protected: + // Additional Protected Declarations + //## begin Line.protected preserve=yes + //## end Line.protected + + private: + // Additional Private Declarations + //## begin Line.private preserve=yes + //## end Line.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Line::myPoints.has + //## begin Line::myPoints.has preserve=no private: pList {1 -> 1VO} + pList myPoints; + //## end Line::myPoints.has + + // Additional Implementation Declarations + //## begin Line.implementation preserve=yes + //## end Line.implementation + +}; + +//## begin Line.postscript preserve=yes +//## end Line.postscript + +// Class Line + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/list.cpp b/Lab6/list.cpp new file mode 100644 index 0000000..6f7648e --- /dev/null +++ b/Lab6/list.cpp @@ -0,0 +1,136 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package body +//## Subsystem: Figures +//## Source file: H:\WebDocs\skola\Avancerad_C++\Lab6\List.cpp + +//## begin module. preserve=no +//## end module. + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "H:\WebDocs\skola\Avancerad_C++\Lab6\List.h" +//## begin module.additionalDeclarations preserve=yes +#include +#include +//## end module.additionalDeclarations + + +// Parameterized Class List + + + +template +List::List() + //## begin List::List%.hasinit preserve=no + : size(0) + //## end List::List%.hasinit + //## begin List::List%.initialization preserve=yes + //## end List::List%.initialization +{ + //## begin List::List%.body preserve=yes + head=NULL; + //## end List::List%.body +} + + +template +List::~List() +{ + //## begin List::~List%.body preserve=yes + delete head; + //## end List::~List%.body +} + + + +//## Other Operations (implementation) +template +void List::add (int position, T item) +{ + //## begin List::add%937398674.body preserve=yes + + size++; + Node* newPtr = new Node(item); + + if (position==0) { + newPtr->next=head; + head=newPtr; + } + else { + Node* prev=head; + for (int i=0;inext; + newPtr->next=prev->next; + prev->next=newPtr; + } + //## end List::add%937398674.body +} + +template +void List::del (int position) +{ + //## begin List::del%937398675.body preserve=yes + Node* trav=head; + Node* cur; + size--; + if (position == 0) { + cur = head; + head = head -> next; + } + else { + for (int i=0 ; i next; + cur = trav -> next; + trav -> next = cur ->next; + } + cur -> next = NULL; + delete cur; + cur = NULL; + + //## end List::del%937398675.body +} + +template +bool List::isEmpty () +{ + //## begin List::isEmpty%937398676.body preserve=yes + return (size==0); + //## end List::isEmpty%937398676.body +} + +template +int List::getSize () +{ + //## begin List::getSize%937398677.body preserve=yes + return size; + //## end List::getSize%937398677.body +} + +template +T List::getItem (int position) +{ + //## begin List::getItem%937398678.body preserve=yes + Node* cur=head; + for(int i=0 ; inext; + return (cur->data); + + //## end List::getItem%937398678.body +} + +// Additional Declarations + //## begin List.declarations preserve=yes + //## end List.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/list.h b/Lab6/list.h new file mode 100644 index 0000000..fcef605 --- /dev/null +++ b/Lab6/list.h @@ -0,0 +1,111 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package specification +//## Subsystem: Figures +//## Source file: List.h + +#ifndef List_h +#define List_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Node +#include "Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: List; Parameterized Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class List +{ + //## begin List.initialDeclarations preserve=yes + //## end List.initialDeclarations + + public: + //## Constructors (generated) + List(); + + //## Destructor (generated) + ~List(); + + + //## Other Operations (specified) + //## Operation: add%937398674 + // Denna sätter in grejjer i listan... + void add (int position, T item); + + //## Operation: del%937398675 + void del (int position); + + //## Operation: isEmpty%937398676 + bool isEmpty (); + + //## Operation: getSize%937398677 + int getSize (); + + //## Operation: getItem%937398678 + T getItem (int position); + + // Additional Public Declarations + //## begin List.public preserve=yes + //## end List.public + + protected: + // Additional Protected Declarations + //## begin List.protected preserve=yes + //## end List.protected + + private: + // Additional Private Declarations + //## begin List.private preserve=yes + //## end List.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation List::head.has + //## begin List::head.has preserve=yes private: Node {1 -> 1RO} + Node *head; + //## end List::head.has + + // Data Members for Class Attributes + + //## Attribute: size + //## begin List::size.attr preserve=no private: int {U} 0 + int size; + //## end List::size.attr + + // Additional Implementation Declarations + //## begin List.implementation preserve=yes + //## end List.implementation + +}; + +//## begin List.postscript preserve=yes +//## end List.postscript + +// Parameterized Class List + + + +//## begin module.epilog preserve=yes +#include "list.cpp" +//## end module.epilog + + +#endif diff --git a/Lab6/main.cpp b/Lab6/main.cpp new file mode 100644 index 0000000..e1ce042 --- /dev/null +++ b/Lab6/main.cpp @@ -0,0 +1,89 @@ +//# +//# main.c +//# +//# ======================================================= +//# Lab i Avacerad C++ +//# 4. Figures +//# +//# +//# Christian Ohlsson +//# Daniel Alfredsson +//# Karlstads universitet +//# 991013 +//# ======================================================= + + +#include +#include "Graphics.h" +#include "line.h" +#include "rectngle.h" +#include "circle.h" +#include "flist.h" +#include "CmplxFgr.h" +#include "pstream.h" +#include "pcircle.h" +#include "prctngle.h" + +void archive(int& i, PStream& ps){ + if(ps.isSaving()) + ps<>i; +} + +void archive(Point& i, PStream& ps){ + if(ps.isSaving()){ + ps<>x; + i.setx(x); + ps>>x; + i.sety(x); + } +} + +void main(void) { + Graphics g; + Persistent *pFig1, *pFig2, *newFig1, *newFig2, *newFig3, *newFig4; + PStream ps; + + Pcircle pc(1,2,3,4); + Prectangle pr(5,6,7,8,9); + + pFig1 = &pc; + pFig2 = ≺ + + // Save to file + ps.save("test.dat"); + ps.archive(pFig1); + ps.archive(pFig1); + ps.archive(pFig2); + ps.archive(pFig1); + ps.close(); + + // Restore from file + ps.load("test.dat"); + ps.archive(newFig1); + ps.archive(newFig2); + ps.archive(newFig3); + ps.archive(newFig4); // Does not exist on file... + ps.close(); + + // Draw the figure objects.. + PersFig* psf = (PersFig*)newFig1; + psf->draw(g); + psf = (PersFig*)≺ + psf->draw(g); + + // This is just to show the pointers... + cout << "\nFigurePtr1: " << (int)newFig1 << endl; + cout << "FigurePtr2: " << (int)newFig2 << endl; + cout << "FigurePtr3: " << (int)newFig3 << endl; + cout << "FigurePtr4: " << (int)newFig4 << endl; + + char x; + cin >> x; +} diff --git a/Lab6/mapfake.cpp b/Lab6/mapfake.cpp new file mode 100644 index 0000000..ae3a704 --- /dev/null +++ b/Lab6/mapfake.cpp @@ -0,0 +1,48 @@ +template +Mapfake::Mapfake(){} + + +template +int Mapfake::getSize(){ + return list.getSize(); +} + + +template +DataType Mapfake::find(KeyType key) +{ + int i=0; + if(list.getItem(0)->getKey() == key) + return list.getItem(0)->getData(); + while(!list.isEmpty()) { + i++; + if(list.getItem(i)->getKey() == key) + return list.getItem(i)->getData(); + } + return (DataType)0; // Just to supress compilerwarning +} + +template +bool Mapfake::exist(KeyType key) +{ + for(int i=0 ; igetKey() == key) + return true; + } + return false; +} + +template +bool Mapfake::add(KeyType key, DataType data) +{ + Tuple *tuple; + tuple = new Tuple(key, data); + + if(exist(key)) + return false; + + list.add(0, tuple); + return true; +} + + diff --git a/Lab6/mapfake.h b/Lab6/mapfake.h new file mode 100644 index 0000000..8dc354e --- /dev/null +++ b/Lab6/mapfake.h @@ -0,0 +1,32 @@ +#ifndef __MAP_H +#define __MAP_H + +#include +#include "List.h" + +template +class Mapfake{ +private: + typedef class Tuple{ + KeyType key; + DataType data; + public: + Tuple(KeyType _key, DataType _data){key = _key; data = _data;} + + KeyType getKey(){return key;} + DataType getData(){return data;} + } Tuple; + + List list; + +public: + Mapfake(); + + DataType find(KeyType key); + bool exist(KeyType key); + bool add(KeyType key, DataType data); + int getSize(); +}; + +#include "mapfake.cpp" +#endif \ No newline at end of file diff --git a/Lab6/node.cpp b/Lab6/node.cpp new file mode 100644 index 0000000..1b9f151 --- /dev/null +++ b/Lab6/node.cpp @@ -0,0 +1,66 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package body +//## Subsystem: Figures +//## Source file: Node.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Node +#include "Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Parameterized Class Node + + + +template +Node::Node() + //## begin Node::Node%.hasinit preserve=no + //## end Node::Node%.hasinit + //## begin Node::Node%.initialization preserve=yes + //## end Node::Node%.initialization +{ + //## begin Node::Node%.body preserve=yes + //## end Node::Node%.body +} + + +template +Node::~Node() +{ + //## begin Node::~Node%.body preserve=yes + if(next) delete next ; + //## end Node::~Node%.body +} + + +// Additional Declarations + //## begin Node.declarations preserve=yes +#include "list.h" + //## end Node.declarations + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Node::getData%939104773.body preserve=no + return *this; +//## end Node::getData%939104773.body + +#endif diff --git a/Lab6/node.h b/Lab6/node.h new file mode 100644 index 0000000..795187a --- /dev/null +++ b/Lab6/node.h @@ -0,0 +1,95 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Node.h + +#ifndef Node_h +#define Node_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Node; Parameterized Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class Node +{ + //## begin Node.initialDeclarations preserve=yes + public: + Node(T theData):data(theData){next = (Node*)0;} + //## end Node.initialDeclarations + + public: + //## Constructors (generated) + Node(); + + //## Destructor (generated) + ~Node(); + + // Additional Public Declarations + //## begin Node.public preserve=yes + Node *next; + T data; + //## end Node.public + protected: + // Additional Protected Declarations + //## begin Node.protected preserve=yes + //## end Node.protected + + private: + // Additional Private Declarations + //## begin Node.private preserve=yes + //## end Node.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Node::next.has + //## begin Node::next.has preserve=yes public: Node {1 -> 1RO} + // Node *next; + //## end Node::next.has + + // Data Members for Class Attributes + + //## Attribute: data + //## begin Node::data.attr preserve=yes public: T {U} + // T data; + //## end Node::data.attr + + // Additional Implementation Declarations + //## begin Node.implementation preserve=yes + //## end Node.implementation + +}; + +//## begin Node.postscript preserve=yes + +#include "node.cpp" +//## end Node.postscript + +// Parameterized Class Node + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/pcircle.cpp b/Lab6/pcircle.cpp new file mode 100644 index 0000000..41d0047 --- /dev/null +++ b/Lab6/pcircle.cpp @@ -0,0 +1,102 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Pcircle; Pseudo Package body +//## Subsystem: Figures +//## Source file: Pcircle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Pcircle +#include "Pcircle.h" +#include "PStream.h" +#include "Point.h" +//## begin module.additionalDeclarations preserve=yes +void archive(int &i, PStream &ps); +void archive(Point& i, PStream &ps); + + +Persistent* Pcircle::_pobj = Persistent::addType("Pcircle", new Pcircle); +// ************** GAMMAL ****************** +//IMPLEMENT_PERSISTENT(Pcircle); +//## end module.additionalDeclarations + + +// Class Pcircle + +Pcircle::~Pcircle() +{ + //## begin Pcircle::~Pcircle%.body preserve=yes + //## end Pcircle::~Pcircle%.body +} +Pcircle::Pcircle(int xPos, int yPos, int _radius, Color _color) + //## begin Pcircle::Pcircle%.hasinit preserve=no + //## end Pcircle::Pcircle%.hasinit + //## begin Pcircle::Pcircle%.initialization preserve=yes + //## end Pcircle::Pcircle%.initialization +{ + //## begin Pcircle::Pcircle%.body preserve=yes + // Circle::Circle(xPos, yPos, _radius, _color); + + _pobj = Persistent::addType("Pcircle", new Pcircle); + setCenter(xPos, yPos); + setRad(_radius); + setColor(_color); + //## end Pcircle::Pcircle%.body +} + +Pcircle::Pcircle(const Pcircle &src) +{ + Point *tmp; + tmp=(Point*)&src.getCenter(); + setCenter(tmp->getx(), tmp->gety()); + setRad(src.getRad()); + setColor(Figure::getColor()); +} +//## Other Operations (implementation) +void Pcircle::archive (PStream& ps) +{ + //## begin Pcircle::archive%940866975.body preserve=yes + if(ps.isSaving()){ + Point c = getCenter(); + if(ps.is_open()) + cout << "File open... archiving " < + + + //## Inherits: +{ + //## begin Pcircle.initialDeclarations preserve=yes + //## end Pcircle.initialDeclarations + + public: + //## Constructors (generated) + + Pcircle(){}; + Pcircle(int xPos, int yPos, int _radius, Color _color); + Pcircle(const Pcircle &src); + + //## Destructor (generated) + ~Pcircle(); + + + //## Other Operations (specified) + //## Operation: archive%940866975 + void archive (PStream& ps); + + // Additional Public Declarations + //## begin Pcircle.public preserve=yes + + char* name() const { + return "Pcircle"; + } + Persistent* clone1() const { + return new Pcircle(*this); + } + Figure* clone() const { + return new Pcircle(*this); + } + static Persistent* _pobj; + +// ************** GAMMAL ****************** +// DECLARE_PERSISTENT(Pcircle); + + //## end Pcircle.public + + protected: + // Additional Protected Declarations + //## begin Pcircle.protected preserve=yes + //## end Pcircle.protected + + private: + // Additional Private Declarations + //## begin Pcircle.private preserve=yes + //## end Pcircle.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Pcircle.implementation preserve=yes + //## end Pcircle.implementation + +}; + +//## begin Pcircle.postscript preserve=yes +//## end Pcircle.postscript + +// Class Pcircle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/persfig.cpp b/Lab6/persfig.cpp new file mode 100644 index 0000000..2e1a3ef --- /dev/null +++ b/Lab6/persfig.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PersFig; Pseudo Package body +//## Subsystem: Figures +//## Source file: PersFig.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// PersFig +#include "PersFig.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class PersFig + +PersFig::PersFig() + //## begin PersFig::PersFig%.hasinit preserve=no + //## end PersFig::PersFig%.hasinit + //## begin PersFig::PersFig%.initialization preserve=yes + //## end PersFig::PersFig%.initialization +{ + //## begin PersFig::PersFig%.body preserve=yes + //## end PersFig::PersFig%.body +} + + +PersFig::~PersFig() +{ + //## begin PersFig::~PersFig%.body preserve=yes + //## end PersFig::~PersFig%.body +} + + +// Additional Declarations + //## begin PersFig.declarations preserve=yes + //## end PersFig.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/persfig.h b/Lab6/persfig.h new file mode 100644 index 0000000..10d0e28 --- /dev/null +++ b/Lab6/persfig.h @@ -0,0 +1,80 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PersFig; Pseudo Package specification +//## Subsystem: Figures +//## Source file: PersFig.h + +#ifndef PersFig_h +#define PersFig_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Figure +#include "Figure.h" +// Persistent +#include "Prsstent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: PersFig +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class PersFig : public Persistent, //## Inherits: + virtual public Figure //## Inherits: +{ + //## begin PersFig.initialDeclarations preserve=yes + //## end PersFig.initialDeclarations + + public: + //## Constructors (generated) + PersFig(); + + //## Destructor (generated) + ~PersFig(); + + // Additional Public Declarations + //## begin PersFig.public preserve=yes + //## end PersFig.public + + protected: + // Additional Protected Declarations + //## begin PersFig.protected preserve=yes + //## end PersFig.protected + + private: + // Additional Private Declarations + //## begin PersFig.private preserve=yes + //## end PersFig.private + + private: //## implementation + // Additional Implementation Declarations + //## begin PersFig.implementation preserve=yes + //## end PersFig.implementation + +}; + +//## begin PersFig.postscript preserve=yes +//## end PersFig.postscript + +// Class PersFig + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/pline.cpp b/Lab6/pline.cpp new file mode 100644 index 0000000..a69c25b --- /dev/null +++ b/Lab6/pline.cpp @@ -0,0 +1,59 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Pline; Pseudo Package body +//## Subsystem: Figures +//## Source file: Pline.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Pline +#include "Pline.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Pline + +Pline::Pline() + //## begin Pline::Pline%.hasinit preserve=no + //## end Pline::Pline%.hasinit + //## begin Pline::Pline%.initialization preserve=yes + //## end Pline::Pline%.initialization +{ + //## begin Pline::Pline%.body preserve=yes + //## end Pline::Pline%.body +} + + +Pline::~Pline() +{ + //## begin Pline::~Pline%.body preserve=yes + //## end Pline::~Pline%.body +} + + + +//## Other Operations (implementation) +void Pline::archive (PStream& ps) +{ + //## begin Pline::archive%940866980.body preserve=yes + //## end Pline::archive%940866980.body +} + +// Additional Declarations + //## begin Pline.declarations preserve=yes + //## end Pline.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/pline.h b/Lab6/pline.h new file mode 100644 index 0000000..914afc5 --- /dev/null +++ b/Lab6/pline.h @@ -0,0 +1,85 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Pline; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Pline.h + +#ifndef Pline_h +#define Pline_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Line +#include "Line.h" +// PersFig +#include "PersFig.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Pline +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Pline : public PersFig, //## Inherits: +public Line //## Inherits: +{ + //## begin Pline.initialDeclarations preserve=yes + //## end Pline.initialDeclarations + +public: + //## Constructors (generated) + Pline(); + + //## Destructor (generated) + ~Pline(); + + + //## Other Operations (specified) + //## Operation: archive%940866980 + void archive (PStream &ps); + + // Additional Public Declarations + //## begin Pline.public preserve=yes + //## end Pline.public + +protected: + // Additional Protected Declarations + //## begin Pline.protected preserve=yes + //## end Pline.protected + +private: + // Additional Private Declarations + //## begin Pline.private preserve=yes + //## end Pline.private + +private: //## implementation + // Additional Implementation Declarations + //## begin Pline.implementation preserve=yes + //## end Pline.implementation + +}; + +//## begin Pline.postscript preserve=yes +//## end Pline.postscript + +// Class Pline + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/plist.cpp b/Lab6/plist.cpp new file mode 100644 index 0000000..69bff78 --- /dev/null +++ b/Lab6/plist.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: pList; Pseudo Package body +//## Subsystem: Figures +//## Source file: pList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// pList +#include "pList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin pList.instantiation preserve=no +template class List< Point >; +//## end pList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/plist.h b/Lab6/plist.h new file mode 100644 index 0000000..0f148ad --- /dev/null +++ b/Lab6/plist.h @@ -0,0 +1,48 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: pList; Pseudo Package specification +//## Subsystem: Figures +//## Source file: pList.h + +#ifndef pList_h +#define pList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "List.h" +// Point +#include "Point.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: pList; Instantiated Class +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Point { -> } + +typedef List< Point > pList; + +//## begin pList.postscript preserve=yes +//## end pList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/point.cpp b/Lab6/point.cpp new file mode 100644 index 0000000..89f841e --- /dev/null +++ b/Lab6/point.cpp @@ -0,0 +1,83 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Point; Pseudo Package body +//## Subsystem: Figures +//## Source file: Point.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "Point.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Point + + + +Point::Point() + //## begin Point::Point%.hasinit preserve=no + //## end Point::Point%.hasinit + //## begin Point::Point%.initialization preserve=yes + //## end Point::Point%.initialization +{ + //## begin Point::Point%.body preserve=yes + //## end Point::Point%.body +} + + +Point::~Point() +{ + //## begin Point::~Point%.body preserve=yes + //## end Point::~Point%.body +} + + + +//## Other Operations (implementation) +int Point::getx () +{ + //## begin Point::getx%937398664.body preserve=yes + return x; + //## end Point::getx%937398664.body +} + +int Point::gety () +{ + //## begin Point::gety%937398665.body preserve=yes + return y; + //## end Point::gety%937398665.body +} + +void Point::setx (int src) +{ + //## begin Point::setx%937398666.body preserve=yes + x=src; + //## end Point::setx%937398666.body +} + +void Point::sety (int src) +{ + //## begin Point::sety%937398667.body preserve=yes + y=src; + //## end Point::sety%937398667.body +} + +// Additional Declarations + //## begin Point.declarations preserve=yes + //## end Point.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/point.h b/Lab6/point.h new file mode 100644 index 0000000..8241d3f --- /dev/null +++ b/Lab6/point.h @@ -0,0 +1,101 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Point; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Point.h + +#ifndef Point_h +#define Point_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Point +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Point +{ + //## begin Point.initialDeclarations preserve=yes + //## end Point.initialDeclarations + + public: + //## Constructors (generated) + Point(); + + //## Destructor (generated) + ~Point(); + + + //## Other Operations (specified) + //## Operation: getx%937398664 + int getx (); + + //## Operation: gety%937398665 + int gety (); + + //## Operation: setx%937398666 + void setx (int src); + + //## Operation: sety%937398667 + void sety (int src); + + // Additional Public Declarations + //## begin Point.public preserve=yes + //## end Point.public + + protected: + // Additional Protected Declarations + //## begin Point.protected preserve=yes + //## end Point.protected + + private: + // Additional Private Declarations + //## begin Point.private preserve=yes + //## end Point.private + + private: //## implementation + // Data Members for Class Attributes + + //## Attribute: x + //## begin Point::x.attr preserve=no private: int {U} + int x; + //## end Point::x.attr + + //## Attribute: y + //## begin Point::y.attr preserve=no private: int {U} + int y; + //## end Point::y.attr + + // Additional Implementation Declarations + //## begin Point.implementation preserve=yes + //## end Point.implementation + +}; + +//## begin Point.postscript preserve=yes +//## end Point.postscript + +// Class Point + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/prctngle.cpp b/Lab6/prctngle.cpp new file mode 100644 index 0000000..c29c890 --- /dev/null +++ b/Lab6/prctngle.cpp @@ -0,0 +1,96 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Prectangle; Pseudo Package body +//## Subsystem: Figures +//## Source file: Prctngle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Prectangle +#include "Prctngle.h" +//## begin module.additionalDeclarations preserve=yes + +Persistent* Prectangle::_pobj = Persistent::addType("Prectangle", new Prectangle); +//## end module.additionalDeclarations + + +// Class Prectangle + +Prectangle::Prectangle() + //## begin Prectangle::Prectangle%.hasinit preserve=no + //## end Prectangle::Prectangle%.hasinit + //## begin Prectangle::Prectangle%.initialization preserve=yes + //## end Prectangle::Prectangle%.initialization +{ + //## begin Prectangle::Prectangle%.body preserve=yes + //## end Prectangle::Prectangle%.body +} +Prectangle::Prectangle(int x1, int y1, int x2, int y2, Color c) +{ + _pobj=Persistent::addType("Prectangle", new Prectangle); + setColor(c); + setLT(x1, y1); + setRB(x2, y2); +} +Prectangle::Prectangle(const Prectangle& src) +{ + Point *lt, *rb; + lt=(Point*)&src.getLT(); + setLT(lt->getx(), lt->gety()); + rb=(Point*)&src.getRB(); + setRB(rb->getx(), rb->gety()); + setColor(Figure::getColor()); +} + +Prectangle::~Prectangle() +{ + //## begin Prectangle::~Prectangle%.body preserve=yes + //## end Prectangle::~Prectangle%.body +} + + + +//## Other Operations (implementation) +void Prectangle::archive (PStream& ps) +{ + //## begin Prectangle::archive%940866981.body preserve=yes + if(ps.isSaving()){ + Point LT = getLT(); + Point RB = getRB(); + + ::archive(LT,ps); + ::archive(RB,ps); + int i = getColor(); + ::archive(i,ps); + } + else{ + Point LT, RB; + int i; + ::archive(LT,ps); + setLT(LT.getx(), LT.gety()); + ::archive(LT,ps); + setRB(RB.getx(), RB.gety()); + ::archive(i,ps); + setColor(i); + } + + //## end Prectangle::archive%940866981.body +} + +// Additional Declarations + //## begin Prectangle.declarations preserve=yes + //## end Prectangle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/prctngle.h b/Lab6/prctngle.h new file mode 100644 index 0000000..29ecc00 --- /dev/null +++ b/Lab6/prctngle.h @@ -0,0 +1,104 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Prectangle; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Prctngle.h + +#ifndef Prctngle_h +#define Prctngle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Rectangle +#include "Rectngle.h" +// PersFig +#include "PersFig.h" +//## begin module.additionalDeclarations preserve=yes +#include "PStream.h" +#include "Point.h" +//## begin module.additionalDeclarations preserve=yes +void archive(int &i, PStream &ps); +void archive(Point& i, PStream &ps); + + +//## end module.additionalDeclarations + + +//## Class: Prectangle +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Prectangle : public PersFig, //## Inherits: + public Rectangle //## Inherits: +{ + //## begin Prectangle.initialDeclarations preserve=yes + //## end Prectangle.initialDeclarations + + public: + //## Constructors (generated) + Prectangle(); + Prectangle(int x1, int y1, int x2, int y2, Color c); + Prectangle(const Prectangle &src); + + //## Destructor (generated) + ~Prectangle(); + + + //## Other Operations (specified) + //## Operation: archive%940866981 + void archive (PStream &ps); + char* name() const { + return "Prectangle"; + } + Persistent* clone1() const { + return new Prectangle(*this); + } + Figure* clone() const { + return new Prectangle(*this); + } + static Persistent* _pobj; + + // Additional Public Declarations + //## begin Prectangle.public preserve=yes + //## end Prectangle.public + + protected: + // Additional Protected Declarations + //## begin Prectangle.protected preserve=yes + //## end Prectangle.protected + + private: + // Additional Private Declarations + //## begin Prectangle.private preserve=yes + //## end Prectangle.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Prectangle.implementation preserve=yes + //## end Prectangle.implementation + +}; + +//## begin Prectangle.postscript preserve=yes +//## end Prectangle.postscript + +// Class Prectangle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/prsstent.cpp b/Lab6/prsstent.cpp new file mode 100644 index 0000000..e9e621c --- /dev/null +++ b/Lab6/prsstent.cpp @@ -0,0 +1,80 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Persistent; Pseudo Package body +//## Subsystem: Figures +//## Source file: Prsstent.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Persistent +#include "Prsstent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Persistent + +//## begin Persistent::instMap.has preserve=no private: static InstMap {1 -> 1VO} +InstMap Persistent::instMap; +//## end Persistent::instMap.has + +Persistent::Persistent() + //## begin Persistent::Persistent%.hasinit preserve=no + //## end Persistent::Persistent%.hasinit + //## begin Persistent::Persistent%.initialization preserve=yes + //## end Persistent::Persistent%.initialization +{ + //## begin Persistent::Persistent%.body preserve=yes + //## end Persistent::Persistent%.body +} + + +Persistent::~Persistent() +{ + //## begin Persistent::~Persistent%.body preserve=yes + //## end Persistent::~Persistent%.body +} + + + +//## Other Operations (implementation) +Persistent* Persistent::addType (char* name, Persistent* pers) +{ + //## begin Persistent::addType%940866979.body preserve=yes + Str tmp(name); +// if(!instMap) +// { +// instMap = new InstMap; +// } + instMap.add(tmp, pers); + return pers; + //## end Persistent::addType%940866979.body +} + +Persistent* Persistent::clone1 (char* name) +{ + //## begin Persistent::clone%940866991.body preserve=yes + Persistent *p; + Str tmp(name); + p=instMap.find(tmp); + return p->clone1(); + //## end Persistent::clone%940866991.body +} + +// Additional Declarations + //## begin Persistent.declarations preserve=yes + //## end Persistent.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/prsstent.h b/Lab6/prsstent.h new file mode 100644 index 0000000..80a71e6 --- /dev/null +++ b/Lab6/prsstent.h @@ -0,0 +1,116 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Persistent; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Prsstent.h + +#ifndef Prsstent_h +#define Prsstent_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// InstMap +#include "InstMap.h" +// PStream +//#include "PStream.h" +//## begin module.additionalDeclarations preserve=yes +class PStream; + +#define DECLARE_PERSISTENT(X) \ + char* name() const {return #X;} \ + Persistent* clone() const {return new X(*this);} \ + static Persistent* _pobj; + +#define IMPLEMENT_PERSISTENT(X) \ + Persistent* X::_pobj = Persistent::addType(#X, new X); + + +//## end module.additionalDeclarations + + +//## Class: Persistent +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; PStream { -> } + +class Persistent +{ + //## begin Persistent.initialDeclarations preserve=yes + //## end Persistent.initialDeclarations + + public: + //## Constructors (generated) + Persistent(); + + //## Destructor (generated) + ~Persistent(); + + + //## Other Operations (specified) + //## Operation: archive%940866976 + virtual void archive (PStream& ps) = 0; + + //## Operation: name%940866977 + virtual char* name () const = 0; + + //## Operation: clone%940866978 + virtual Persistent* clone1 () const = 0; + + //## Operation: addType%940866979 + static Persistent* addType (char* name, Persistent* pers); + + //## Operation: clone%940866991 + static Persistent* clone1 (char* name); + + // Additional Public Declarations + //## begin Persistent.public preserve=yes + //## end Persistent.public + + protected: + // Additional Protected Declarations + //## begin Persistent.protected preserve=yes + //## end Persistent.protected + + private: + // Additional Private Declarations + //## begin Persistent.private preserve=yes + //## end Persistent.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Persistent::instMap.has + //## begin Persistent::instMap.has preserve=no private: static InstMap {1 -> 1VO} + static InstMap instMap; + //## end Persistent::instMap.has + + // Additional Implementation Declarations + //## begin Persistent.implementation preserve=yes + //## end Persistent.implementation + +}; + +//## begin Persistent.postscript preserve=yes +//## end Persistent.postscript + +// Class Persistent + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/psmap.cpp b/Lab6/psmap.cpp new file mode 100644 index 0000000..4cfac26 --- /dev/null +++ b/Lab6/psmap.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PsMap; Pseudo Package body +//## Subsystem: Figures +//## Source file: PsMap.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// PsMap +#include "PsMap.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin PsMap.instantiation preserve=no +template class Mapfake< Persistent*,int >; +//## end PsMap.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/psmap.h b/Lab6/psmap.h new file mode 100644 index 0000000..612b0b5 --- /dev/null +++ b/Lab6/psmap.h @@ -0,0 +1,45 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PsMap; Pseudo Package specification +//## Subsystem: Figures +//## Source file: PsMap.h + +#ifndef PsMap_h +#define PsMap_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// MapFake +#include "MapFake.h" +//## begin module.additionalDeclarations preserve=yes +class Persistent; +//## end module.additionalDeclarations + + +//## Class: PsMap; Instantiated Class +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +typedef Mapfake< Persistent*,int > PsMap; + +//## begin PsMap.postscript preserve=yes +//## end PsMap.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/pstream.cpp b/Lab6/pstream.cpp new file mode 100644 index 0000000..1825c59 --- /dev/null +++ b/Lab6/pstream.cpp @@ -0,0 +1,184 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PStream; Pseudo Package body +//## Subsystem: Figures +//## Source file: PStream.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// PStream +#include "PStream.h" +//## begin module.additionalDeclarations preserve=yes +#include "prsstent.h" + +//## end module.additionalDeclarations + + +// Class PStream + + + + +PStream::PStream() + //## begin PStream::PStream%.hasinit preserve=no + : saving(false) + //## end PStream::PStream%.hasinit + //## begin PStream::PStream%.initialization preserve=yes + //## end PStream::PStream%.initialization +{ + //## begin PStream::PStream%.body preserve=yes + for(int i=0 ; iname() << endl; + x->archive(*this); + } + } + + // Let's load some data + else{ + int n; + (*this) >> n; + if(n==0){ + x=0; + return; + } + + x = find(n); + if(x == 0) + { + Str name; + (*this) >> name; + + x = Persistent::clone1(name.getStr()); + + if(x==0){ + clear(ios::failbit); + return; + } + + add(n, x); + x->archive(*this); + } + } + + //## end PStream::archive%940866986.body +} + +Persistent* PStream::find (int x) const +{ + //## begin PStream::find%940866987.body preserve=yes + if(x>=0 && xexist((Persistent*)p)) + return tmp->find((Persistent*) p); + return 0; + //## end PStream::find%940866989.body +} + +int PStream::add (const Persistent* data) +{ + //## begin PStream::add%940866990.body preserve=yes + int size=psMap.getSize()+1; + PsMap* tmp = (PsMap*)&psMap; + tmp->add((Persistent*)data, size); + return size; + //## end PStream::add%940866990.body +} + +// Additional Declarations + //## begin PStream.declarations preserve=yes + //## end PStream.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab6/pstream.h b/Lab6/pstream.h new file mode 100644 index 0000000..231c51d --- /dev/null +++ b/Lab6/pstream.h @@ -0,0 +1,142 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: PStream; Pseudo Package specification +//## Subsystem: Figures +//## Source file: PStream.h + +#ifndef PStream_h +#define PStream_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include "str.h" +#include +//## end module.includes + +// PsMap +#include "PsMap.h" +// Persistent +#include "Prsstent.h" +// fstream +//#include "fstream.h" +//## begin module.additionalDeclarations preserve=yes +#define RESTORE_SIZE 100 +//## end module.additionalDeclarations + + +//## Class: PStream +//## Category: Persist +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Persistent { -> } + +class PStream : public fstream //## Inherits: +{ + //## begin PStream.initialDeclarations preserve=yes + //## end PStream.initialDeclarations + + public: + //## Constructors (generated) + PStream(); + + //## Destructor (generated) + ~PStream(); + + + //## Other Operations (specified) + //## Operation: load%940866982 + void load (char* filename); + + //## Operation: save%940866983 + void save (char* filename); + + //## Operation: close%940866984 + void close (); + + //## Operation: isSaving%940866985 + bool isSaving (); + + //## Operation: archive%940866986 + void archive (Persistent*& x); + + //## Operation: find%940866987 + Persistent* find (int x) const; + + //## Operation: add%940866988 + void add (int pos, Persistent* data); + + //## Operation: find%940866989 + int find (const Persistent* p) const; + + //## Operation: add%940866990 + int add (const Persistent* data); + + // Additional Public Declarations + //## begin PStream.public preserve=yes + //## end PStream.public + + protected: + // Additional Protected Declarations + //## begin PStream.protected preserve=yes + //## end PStream.protected + + private: + //## Get and Set Operations for Has Relationships (generated) + + //## Documentation PStream::psMap.has + + //## Get and Set Operations for Class Attributes (generated) + + //## Attribute: fs + + //## Attribute: saving + + // Additional Private Declarations + //## begin PStream.private preserve=yes + //## end PStream.private + + private: //## implementation + // Data Members for Has Relationships + + //## begin PStream::psMap.has preserve=no private: PsMap {1 -> 1VO} + PsMap psMap; + //## end PStream::psMap.has + + // Data Members for Class Attributes + + //## begin PStream::fs.attr preserve=no private: fstream {U} + //## end PStream::fs.attr + + //## begin PStream::saving.attr preserve=no private: bool {U} false + bool saving; + //## end PStream::saving.attr + + // Additional Implementation Declarations + //## begin PStream.implementation preserve=yes + Persistent* restore[RESTORE_SIZE]; + //## end PStream.implementation + +}; + +//## begin PStream.postscript preserve=yes +//## end PStream.postscript + +// Class PStream + +//## Get and Set Operations for Has Relationships (inline) + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/rectngle.cpp b/Lab6/rectngle.cpp new file mode 100644 index 0000000..76ccb60 --- /dev/null +++ b/Lab6/rectngle.cpp @@ -0,0 +1,107 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package body +//## Subsystem: Figures +//## Source file: Rectngle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Rectangle +#include "Rectngle.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Rectangle + + + +Rectangle::Rectangle() + //## begin Rectangle::Rectangle%.hasinit preserve=no + //## end Rectangle::Rectangle%.hasinit + //## begin Rectangle::Rectangle%.initialization preserve=yes + //## end Rectangle::Rectangle%.initialization +{ + //## begin Rectangle::Rectangle%.body preserve=yes + //## end Rectangle::Rectangle%.body +} + +Rectangle::Rectangle (int x1, int y1, int x2, int y2, Color color) + //## begin Rectangle::Rectangle%939623932.hasinit preserve=no + //## end Rectangle::Rectangle%939623932.hasinit + //## begin Rectangle::Rectangle%939623932.initialization preserve=yes + //## end Rectangle::Rectangle%939623932.initialization +{ + //## begin Rectangle::Rectangle%939623932.body preserve=yes + setColor(color); + leftTop.setx(x1); + leftTop.sety(y1); + rightBottom.setx(x2); + rightBottom.sety(y2); + //## end Rectangle::Rectangle%939623932.body +} + + +Rectangle::~Rectangle() +{ + //## begin Rectangle::~Rectangle%.body preserve=yes + //## end Rectangle::~Rectangle%.body +} + + + +//## Other Operations (implementation) +void Rectangle::draw (Graphics &g) +{ + //## begin Rectangle::draw%937398672.body preserve=yes + g.drawRectangle(leftTop, rightBottom, getColor()); + //## end Rectangle::draw%937398672.body +} + +void Rectangle::erase (Graphics &g) +{ + //## begin Rectangle::erase%937398673.body preserve=yes + setColor(g.getBGColor()); + draw(g); + //## end Rectangle::erase%937398673.body +} + +Figure * Rectangle::clone () +{ + //## begin Rectangle::clone%937398684.body preserve=yes + return new Rectangle(*this); + //## end Rectangle::clone%937398684.body +} + +// Additional Declarations + //## begin Rectangle.declarations preserve=yes + //## end Rectangle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin Rectangle::setColor%939797855.body preserve=no + color=src; +//## end Rectangle::setColor%939797855.body + +//## begin Rectangle::getColor%939797856.body preserve=no + return color; +//## end Rectangle::getColor%939797856.body + +#endif diff --git a/Lab6/rectngle.h b/Lab6/rectngle.h new file mode 100644 index 0000000..cd15b38 --- /dev/null +++ b/Lab6/rectngle.h @@ -0,0 +1,111 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package specification +//## Subsystem: Figures +//## Source file: Rectngle.h + +#ifndef Rectngle_h +#define Rectngle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Point +#include "Point.h" +// Figure +#include "Figure.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Rectangle +//## Category: Figures +//## Subsystem: Figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Rectangle : virtual public Figure //## Inherits: +{ + //## begin Rectangle.initialDeclarations preserve=yes + //## end Rectangle.initialDeclarations + + public: + //## Constructors (generated) + Rectangle(); + + //## Constructors (specified) + //## Operation: Rectangle%939623932 + Rectangle (int x1, int y1, int x2, int y2, Color color); + + //## Destructor (generated) + ~Rectangle(); + + + //## Other Operations (specified) + //## Operation: draw%937398672 + void draw (Graphics &g); + + //## Operation: erase%937398673 + void erase (Graphics &g); + + //## Operation: clone%937398684 + Figure * clone (); + + // Additional Public Declarations + //## begin Rectangle.public preserve=yes + //## end Rectangle.public + + protected: + // Additional Protected Declarations + //## begin Rectangle.protected preserve=yes + const Point getLT() const {return leftTop;} + void setLT(int x, int y){leftTop.setx(x);leftTop.sety(y);} + const Point getRB() const{return rightBottom;} + void setRB(int x, int y){rightBottom.setx(x);rightBottom.sety(y);} + + //## end Rectangle.protected + + private: + // Additional Private Declarations + //## begin Rectangle.private preserve=yes + //## end Rectangle.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Rectangle::leftTop.has + //## begin Rectangle::leftTop.has preserve=no private: Point {1 -> 1VO} + Point leftTop; + //## end Rectangle::leftTop.has + + //## Documentation Rectangle::rightBottom.has + //## begin Rectangle::rightBottom.has preserve=no private: Point {1 -> 1VO} + Point rightBottom; + //## end Rectangle::rightBottom.has + + // Additional Implementation Declarations + //## begin Rectangle.implementation preserve=yes + //## end Rectangle.implementation + +}; + +//## begin Rectangle.postscript preserve=yes +//## end Rectangle.postscript + +// Class Rectangle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab6/str.cpp b/Lab6/str.cpp new file mode 100644 index 0000000..df1585b --- /dev/null +++ b/Lab6/str.cpp @@ -0,0 +1,72 @@ +#include +#include +#include "Str.h" + + +Str::Str():curPos(0){ + str = new char[200]; +} + + +Str::Str(char* _str){ + str = new char[200]; + strcpy(str, _str); +} + + +Str::~Str(){ + delete [] str; +} + + +bool Str::operator==(Str &src){ + if(strcmp(src.getStr(), getStr()) == 0) + return true; + return false; +} + + +Str::Str(const Str& src) +{ + str = new char [strlen(src.str)+1] ; + strcpy(str,src.str); +} + + +Str& Str::operator =(const Str &src){ + if(this!= &src) + { + delete [] str; + str = new char [strlen(src.str)+1] ; + strcpy(str,src.str); + } + return *this; +} + + + + + + + + + + + + +istream& operator >> (istream& is, Str &s){ + char t,x; + + do{ + if(is.peek() != '\n'){ + t = is.get(); + s.str[s.curPos++] = t; + } + else + x= is.get(); + + }while(is.peek() != '\n'); + s.str[s.curPos] = NULL; + return is; +} + diff --git a/Lab6/str.h b/Lab6/str.h new file mode 100644 index 0000000..357d297 --- /dev/null +++ b/Lab6/str.h @@ -0,0 +1,24 @@ +#ifndef __STR_H +#define __STR_H + +#include + +class Str{ + +friend istream& operator >> (istream& is, Str &s); + +public: + Str(); + Str(const Str& src); + Str(char* _str); + ~Str(); + char* getStr(){return str;} + bool operator==(Str &src); + Str& operator =(const Str &src); + +private: + char* str; + int curPos; +}; + +#endif \ No newline at end of file diff --git a/Lab6/test.dat b/Lab6/test.dat new file mode 100644 index 0000000..4028021 --- /dev/null +++ b/Lab6/test.dat @@ -0,0 +1,16 @@ +1 +Pcircle +1 +2 +3 +4 +1 +2 +Prectangle +5 +6 +7 +8 +9 +1 +0 \ No newline at end of file diff --git a/Lab7/Documentation.doc b/Lab7/Documentation.doc new file mode 100644 index 0000000000000000000000000000000000000000..2a5b5c26a2c6c75c8bfe206a2d6dc4a090e46a67 GIT binary patch literal 36864 zcmeI*2|QHY<3I3gr_drxT1;ur7AX>CElZTOv&=bpRFxOKDF^W<#h7t~Lk z5hX&kwM$Xrou&(6*idRV3f^QF-j6{aXP^aabM4a79eGsAS! zk^W%xJv+w#YTp;(kX2adlkTtdk(ks$6^d%W_LBxt)FO;;!us+gfS)=+dI;k4)9im4 zUlK0qQWg1qL3o1x&*2Kj1?eJK@8>>QPNVnt<0V+{=Wt2-{HhZi2SH!3-tYQ?@CD(K z_(+O%+OPf;#leQUVSA3~{~XS*;_z3d3AQKLz83bII7ydjd_ujOoV=!}gmXVd~9cas!!k7R}Dvm&;|d)My^e z@iJy~7L(yiGxqi5Fg(6ZmXMH`>0k0F_kNUPC;8Jjo^8aK$_pUuUN1hQ!!3@+0PYatY-pT94|4}sF? zG%jz1=80Wo1hY9lG`1%#h|A!pGg*NQjwjunL33yO`LkJAoU2CjW%@8^Zb5;8Y!=3X znJf=>Fa`n{A%ULQFApwn1A%ORb;O5?YUD8T z_Ys+l#SZ+QEf^jeG?$J|uvtjQZyAO}6an&&yBf`(&SLoT0z!U3oEqs-jzOj87Sk;;l%FE}-K*+d1M~4(P2exleN70zVU@|CVNEzf;B)&JY2rH1zWN`)A7x}Ye@cS&@p8c4a)jKjX z*-75)?@M>etE7C9B>M44eA^@mgBi&1L!po{MgScpi$t2i#CjYQNq+I7A-B@MA3BmF z$d)_yg%lLBp9~r=)i?~g2U!;z@5o~)lpVY4#zy6V@W1D+&f$2|xi~(^d8l@fqxeUb zY|IpO4Yq-tXTmG)GE)({FE&b+=0{P3X33>-7+lm2TqY^Rq?+N-gK5k_F2mOo)dC&0 z1qm5dE7KE)$d5tR=9PL95EkUcneK}M;=@8!LKY)?<;TVj@|HvSM%-!MOcV+daY1mX z82uUUOw>9ah&6VRtmYZS;%|-12%OJfa>Pgt8I!3p#;E!_3KzDIUF%4lg{U8psJ_^F z4nILrJblTYknrgKD9rv$df@kDn@ zG%(bkR7mOuI!-S*8b1Vs7?|;k@3#!dJ3ikc`fWqs zN;xS7BwK$Ej=xLfM1<}AD#Lm+{YZ}OIC=4^ZITonH96v7PR_ynQueEaX4AYFf&8LK zN;YrlZ}IJ@*LX*nm#<0D_F;r-kV^0Oi(&~kHl5?4Av28>hTktpV#*6wL&nyTx0pSz zI`|fWj)LOe5kcOu|5gW+=!P%@kvXkMQD9)0Uk(JPv0!foub`p|;T1@n9b~5PPh?zP zS|CG{b5=)Y{#EjF1A{zKOOq2ej<-99!60V~TgQ&-pVWlBB8fT-W~lS>9m*>&FX9u?)sUG^&TiilQIPBY zTwpq~wv0UrJz505jBo4kcGsKk&mei4jveV(fS1pZo;a+iyh!?zY7- zKEIci&gZCUIA2*JnXsZ@GVfgSLoh#_>u^#)RuG(GarW=1u=(d+?6g0cm1r)JBG2EW zZ`rf+7Tmqrq~(gtj~MU{o$G}3?%0_ZycjRq;14+X1WD2(b&XE%r6M-3P03iyaVXV2qF81 zRvK?H(oV+t$&ZeJSWFyAPX;|O2<3!-4BePsUJOJDCC5Qpj z4~LDkZ1|0OHrYC9dv)v@e+56Z2559oG%de>qH=&HMNxyGx(7wQg|)a(xDGbM7KnpwupM?m66}U#*aPIgBGpPY zP_+mN{YWcmc{f1m@a~aM5qA>kP-rt2jqa{19i{v6Tko_0?9ijU=K5a4J&};r!SrN>K{7N+Bpq=7-{G{=l3HOofqpgjB=ZZXM9tjmt1@7G_ z$`8zx9LPs1KK0K@PoKpPyv6_!9Wq(CMV!y^#ExwsqXg3)iz%U?@@JGu>{x?A8-;<*up zT=~5wkSrCagif~Ss!Ej#<0K$NW>G@OTOH;9KV4qxJ12Tw=aJgZBVBVS>hGjM=QJcW z{lCZ$R6kOOg+Ua&fp?&c$5S-00!P>Z$?yu^!9bjAhQn@1hiC8{UcgHbv-g0V|%QwM_o7{U2JV?>k54?=1GiIzNnb4!LXi@1=l9 zPf9k*TZoeEN%b4HKy`?)QdCQO-zc0I$hkpEmFlJ?q-js1R1PoKpdBtS9&~t>*kDlI zuu5zQ3_bk!w%fJVe?P@*U^%Hx-DO;nmE=Pwd~s^Wj{dQhV8FJO@)qTSx(QjB*$ zfxdEt{z z`B5~=f?`s>6ocYo-ZTum^X7B0j3*U{`F7}g@}@JegejI~QvO(%gSjL$HpYT5l}wpK zSyDEX17%GaQ`(dU<$@3`5EsPZJzCDBi`1qh-al4E(^zz%QO)>IYQ=MVJ4Wnp4GF#7 zPMyGXL=~w;IvJq_gZjNcjA=hF+2)Me_j7xD`Iq+gcL;b7G;}khY9+O(2rN&vg(O~b zm0IFxey6VafJpBP^z*xo#fC<5QbsJFI<~)sF>PZ_H{}a`wffH*#LK^M)0xb7)k|HRf}PHc z-#RL}&)P%jj$@8FO#^`(_(a}&3D#?{LyJ3pz; z_y2e%`rTZOnVHuHA4orBce;;ret!O_Q71Mj z_f5RlTSX=7Ra%bKwiRpFN(WW&Qj7S3lGB+kIF1<{o?fO>&!y;u05? zZ8KlqYJL6cJBe!g@ro~wUj0|;WcSs`e|186et~+6^1FhjmH}s@r(`ScI-eiX|4O+@ zRq(*qONyUbrJZY-`);y^Yxbu(M>ni9QH*RVJuomhMLp$Z;@pW=dUgR#AJnQ0c2)H+ zH@`6{G@Bc(IAOeAQ9#HM?&d2K%0fE6C}_ zSypD%jV7<1r>d(J7H3=(mA+`G*D4!vygWh8@Pbw{wZv!4#D33GR+_J1OE2pEc}~3M z*|<9?a!gyJx1QZG z|K`OzY`wDm*;22*l*(OSSFC&TMa8*Y`H3$)GQ4CO$C(eU>$Xq(oVRP`nyk2n{nzDf z+FJIsx{fnSl{H_XS-8YpC84SHrO!#W_v?*}|*JZLc)vAeLzVT)zzpZB%yIq0N;^z+(i^jn zI<`Kt0m_^cAC-awu5uDDj?K@r`55&%?S|&jr(=#j8d>C(Xtm^S`pvdiLo?Ntm)>i5 z&e}JrhpuYq*7&P&)8RqP2^?;kON7KmzXVa6HPm`A)cCgmX>cF|aF)<0CXS~d03p6WYV6}VAUH2 zM#bw(HO*BiI4y!nXRqEs=}b#Sx69-SoNA>r1lw^^2DF3TEDKiTAZ zfBjvXM|)D5%p0PYx((HfX?*VDE4()OJ!L*weRWi6iJaU19yTd6XAW%)=Cm7_FY6I3 zHvgSa#AAuoAEzG<9lPauz^$kl(-G^VawjTW2-QAaP-n`uU2c&mtyzENy~{jNwzc8f zZTVy8$<%!mpIV_wA6&QG__X4L_eLSM)tu8RtUJdKCo~z4s$Kr3Vd$6WT$91Jk#@cO z*t!bp+jYEqSFodv^3ql&l{gunx-u;-WabFQfORV_%v@*v`O3#z5%P!J%PJq_#jmMg z1lJ5@tGfDEoiOgXH=<`|WzKFX4R!Bgvmv} zb_}!B+}6~m+r1?FeqVbm%qp9a`u=rVkEx|Wkp-LyxS$G)jxUp(p=7s4eg}$yzR%B-7-0EQ#oaA6xTlZ@AoV>tz6R#HzCuu>$)b_pA zS}(n1@^jsrCg{z+IykRQde4|AZ|AzS z=!D-fye0lY?`iFreSVi#O^gfh|biJ9Z?{8xF)<^zxJq((ay~6+cC_c+L*bR}M#J z*(4>zHN-uz>ZY@QP-g1g3uUt{Z8zlI*s*=0_Nv)w4{A3iX(s88)Ju*m%#zhDjQz60 z;mqJQHk+r>zWOe#>=*xT<3LmMBdz75M}H{3;1VN@n(X-Y<{cIdW8W1Y+vSjUf6dCf zH~ogXS{$eKmen1zE<)!~(W6-|+edu3k~7e+>7DA?#43%d=(nu9@udm*TRaP_40oPY zNU+g4$c(=KyvlQupVsi#8}x^H_gFcNHFSP|wX*Das&+bO0>mxs+wQYMZ+ShrKhU0W zIPUu0U2T4YU$2!)Q@K9+s8f@}j=WXiqjvd;eS}uhi)lH1Z>vo{Z>AO_)go$p zzUN5w_jO9E1C&;TAC_w>2+mfqD3?t4D(^F=JYat4nX<>j?@Fy7zIM%`Si`&8?>DV_ zAzqV_dGb`{47&m6mjy<0<-Um|_# zLy!BbmtLvL>woY0C&!JCW{ix8$-FhDc-(0%N)$_fNiu4ExUs1bv)y!pzuj(tz+KWonot*Pd&l*$d+Wo!6k=*oFdfDSd|ala&8fuA##>gyL`vsa%Ya-y7H-6 z0gevkBTe>JypS=Rv~AkPUghboyH06ed(@Dk7gy<5D)+4Zan-ytFI+bU3>$FWblmfS z4)RM%&ZRy(e$?^kksWuKIvINn=UwxNS^ITYu)VGHi9bqj>wj8n#qD;lQmkZ0m4mcq zsuU;b!of?nxgiyEOU5ji(&X|ir%F$A!={V@4Y{>NrSK}qBH*Ff{tpuin=1C! zHPx>Y?;eBvhTj?KGt%!^?p^!0Bf`Dsre-V5&^)MjJon3q6^tj#>9E-^sfttrMqoEl)1gKdhLVMi17xMZHGf%TVGX~^?H1XdAZlz zG56HgX}Zd5Jq}YgnC*8sO+GdygVmC(D_S;F=Y79}`)fT{R8ZSO*ImgG4=^Zw(JgOy z;HSdpCYNlMvHZ65$sB(>$(HW-a83{S2jIF`!2Ya7LhDW_+)~F>;`Jh#!F;Crb;?8FF*rykjVu#vkp9-#BAz7wndnxv` zWJ*Yenek$C+q8Q1+y0_1eN-N7*x}zVY}4Yfj3=L42D}(wl2Y?--YNZfGxZnBH|pHf z-`O>1SB0G3A3S@=m5%`tA2XRbL#-zjj-UAMj=e{{vvR)voub0R5mAiRQ+pleoG==G zd*fwh@03MI@RA=m(Pom5jBCZ?i)-tS+$P z+P>CqQGT-CePmBB2d6JF9^8aC`j1Vso-ZmYxifN(XX7G9yr%|h%j3t7)|MNO7oXp^ zERMCKr*OTu{9$QB%~_s(SeLW)6w_WzIiY-ffzFqNvZ^)1eX~#W_IhD?y-t1gaf6~O z1JWn$x9fH#PHD}oUU{QsHLLGt%4%Fp3&{<-7FO4w_4Hid!lLrG&m9*=%}v)Gx9^?O zLo{qiz@Q;fbw`V%-(Mow*AT1v& zb!1K3fv4wV7fQ-HaQzcqSDKcL>VL@D{jlqL*PzRl6Q#a}41BlECQNbY3yakSV$nzb z2(c|6k{LhTZ&+Q!iO-w-2kt!YC+5L1T3T4)`a$Z@i2WaLR>V$Et692W?WT~7{n~l0 zN0u%vP;E6Ts~H`?#Bj%a>TG$*(0g%V>7C=9eBbrSyk7a@q}`Q~)mj?$JFfIEay7cb7^T_zSfiP7hkJT$;rw@J?p65a zrJZtVY;U)dm^8}5lqnaw+TugRyF|G%qv0tkyRTMEnU+2gQB~fDB^ksg@$37WWALmpS={yc!8&}!)RkthNFB11!ZfiSj z9u~Xxfc=uIsyj}tcR6w^v3IO>G`G#WO;hdlu&h^`N{>zSu5_ArG^uq;$i0CT_2Q(j_|kXh`#@ z9S7>0gzoi{-T%sehOX$f12RI+LHp@WE4G$iymk2iRj$5tYR=X3Sz9%a9to%KnXA0$ ze&zEWUulj}qk2l~4wBw6+0I+SbddNkW8v%3b~Lf3d<)5vNyck6GTj^GPNqi~Z!7U@ zlzn|D##rU6n)IzJHThv{4JXIkAMzY-Ei+6QPt8EvOadMkcpP+o;p^?NOn-{r_-jYxcgMeU9BlS%g?Ot7 z=c02Fhb6VIz;}m+*Sb0SpQb3s7Ny3`etehvtocmY(Zx4EURXSD+oLC$bzHrw&r5by zO>8d9bJ?;=?}}Qi$BozzYRjKpy4O!$YH;Y)1;vIrWl7O_jV~jznyfZ=kMR#)y{1@X z)NJ)sy@y9;w9D0qO*cH&qg~m}H_}Y4>C=d#Ap?a~a^Gk7y;T#cyfk6Fv|aqcm)cu} z5@xQ-IC12N_VTw9qZc{d_mLl6@N|uc>g(wfZp%p+wCyc?(Q zpj~shuCJ~|y7IyY&fac~{wsCQOF4H}d|=VC*(pDyO}3(b;miv@3q-PFoZrRRKE>%w z{jusonv3H_PW`Y$iU*&I%#dBTr;kyutn(T(Bpcmi+jb4u_)0l3d1?OF*j)AZr!FkI zd@pyKZqd5^cSo*Su{7$~hj7h1hx)uK9a7xuLgQiC%&R^cR)6G*Mi=MZlr7a5eW~o~ z@QCB{ViZiHr*0Ww6Mp8l#+Ah;qpK>n&zxJ9JY|+*wc)`z@$;5_8g?xu>a0e*(w(xQ zR~Fta%Rf0|{(AfQ^3~S{w+21>a&k(c=9kmToZ_9f<3_lwJ{Q+E_JURYo|++F`fjlt zv{d}qhuF)vr?gj1Xx%s7=dk(6A_IkY-QTQuQK3Qltv44QRY(lPcbgjGMY>8bGf!Pcz*0tShy(W*!_Z!Q;ov&_=7L`yj;*J%yw^3N{+R9Zf7Y*na=_8AN9uRY@xHragk-536FyH!cBL|VhK z-DfYS8ZqB)p20Y2xAF77TCU=w5FT%erK&ls(bBh3K0T|j)FpKt z^Zvn;T3Jhj^cA+}-tG1%KykLd^VNHa2hvtuknk!DbG?xf=9;O#$Z4Y7xO)4&XYE7G zJWP5dv(=j9OPUA1Gv^w$Y-H*b1&-4`W2@cx$mZ+A?YYTk7ui3v-mjV8ICr%5{Dh1w z^#e9`Vw`7r`x0`yYvgX8Ir8R)#-npQM4#r(D7(9Pk)dI_y22BsH3PL3oRrq6X)8Qg zq;@hzd5w@q*iMh?Df@12wvq7NC-QK6!Sh0?<#)8&hXscJSppZWck9)3VJUWCS2;Fd~@Z_*n{#hOV@vV z8tE16mUWD?b$^`QYGr+w)9W4uxX0>wc&zzjg}&Q~c>^L-jwpr=h?DU1k{?%fZ2Y_k z>7YdWOvAj!T~(ZT^8|M~ z+kR(zz3D!QHGGbHdF8eZ?To#X>Qw6{-bu0^S7+@SI^X!|(h-gKRO?z(&qgE!Cs{mw zapk$e+I;hEt@MW)dJpfk_WY!ha=PkNkFT2J?nt%Ati7_mF=&UhU%h2jibtkWT1m55 z?o8wAQ`WAna>I2}CaT=XD;T^pjaDoX*Vg}vf{*1=`_#(@=G7I3VoamVl3>}{B^y5N zdvIE%w9w#-(w9`dt=q>{Wm$%XDmbS+uxej?I6CQ&#H`%*S@vFMMxCz-u}#lXnSFHA zr&pE-=M~4@HZuD1Qn|b4{K&EMoj!?dP?z1@rgk_~^VZcG$w z?n^EyuX}PR|Na`)sDop7)oB$3oV#|{x2oCw>j&#E2jwpfI6T+1KG{GtAz(|pY3d4< z+x?#XajZ@MSn!A9hLJ5n50+BNl#Q)d*3uDZC%hvHv3|YI1$M zFoiyT|G^edQ8;)SL&tLz{x{n3w8lyqFQX0+wV;G13t>I-97U3{$FmkUEX$;P@N8xb zru9U~;zNYwQr}a3QYTWAhf#9WFJ4u}lK8y|UPwm22uX(*lE{xC2}>guO5a~_#WI4< zgfgD|p*@-RdlY@~#3vAOXWdID2cF`2*Dfsxd=QkO$O;EQy@vECh?Xf%aHka9TIzwcZ6Uz zknMPaH;`?}4T^)K?QxM9!I7t^en5lKU zp%fm$W2k^iAg|AT1oFnAxDa9qaxe%6gBs|-1ege>U=DWR2yQykzzD1^fb zSPknS7B;~a*aq8S52Qdk902m01E=9Up1~V<2hBi!uYwd& zVGsiukb^$Z7nETj41&?12HKzl`Y-_|gE3fwEzAH{m;-ZR0nou67~loo-~+x81d*@; zVqg`lgE-g$d*L8t!C}aOqmT>7;S^kkLMVdkPz?6~?e4 z@-PUl|7UaTlI0dKS9Gr)1a0~9kBX|xkpc39dJ$!^FXofau2VuO*Dgxpl0Wu&9eLx9R zU@(k;k)Q=*U@Yi@0ZayKumM}J0|#&fSC|6}fDT^Z4GX~sIKYKa2!kaM1uJ0{#KL;m z2%8`dw!&^mhEzBNS#TI~;UrvyOHc?!a2<-_9+bj!sDM{c4Ikhmv_LDgfehY??+Lv? z9uze1&#EGlCKYF_4B{AP0Rw5tN`G41+PC3x;3>reFpZU=1_C z5oUoa(7_G7fdyO$ghdbxF@!v(kuXzWnepco#) zBX|kr@D^&|12hAgGL#5NK@aEy@<6_+LB2sY6x2WmjKLDDzz(LvY?uS{U_Q8m2QXnF z_<|q!LjVLr82kY%U=6H=&9DbDAQKKlHXMUoI1A?>A1=UUD1hrw4ENw6Jb|Y`zESc8 zq|kio2GSr0N<^jKLf%!3u1_4xGUS zW&!!u&>WZxZr}mlzyv>F0SCCS7{VbEmcdHc2yw6#c0dB`f+W}jDXMVe1ryQh8AcCaw#AJq96s`fqXMr z7J5Q2=mSbX12xb9O&AO0*Wqly5u9KFq(T}E(vM;|6jz{OkPhT3R{>XDzq;xy$8^EfS`~)faHS%+O7g?-SrA<96k%8et$rE^ zu2zyU-1#bFC|b&b*1k4|9iVfoelf;7x7zn$ymKr4I>tM<#)Z)`6|}m$VR$U)f*}|| zCiBoMUX z(lPuLI=9xwp#?x%2VUR}tKoagKnyj)KbbJ@^Y%e*?vA^plRz@KliQ{EAi+#g*nmV878Vx~6UC3Dh>{0Tox7xt5l5Ud_@^Wq9$qu3V4UXcaq=LK zut`%<7vTs~Vq*Aqyo9*07#d@|POw=r5=lNB@R-;SCnj8qysdW^7ZoPmZ?|sD zJ2mnjmQU+gM@(Eq2%QMpm_KwRkC4t7TOp@JCSp1bCvqB2X5^&jf!LE%J_AGKN9aYV z0Lhj3!X{~yl1GcU;o8k$*oE!}!_I>U?{O-5WJnrg1z-km)2HNnA;vROO^ks&mrs z>bg>(D+RhzpeqHsQlKjZx>BGk1-eq8D+RhzpeqHsQsD2V!0)dA$+fNUz2bX`8vS~1 z-iGUcwbo2COcVQQ+H_o_;?_FvnwngL5ZRYs-cOLmOcD`tqk!y~BNP7`g%>ngg?Dd)+yf!q2p|*5 zy9#6#S0HgX(lJh^k^3L>r(2rMpWBGk1-eq8D+Rhz;IF0txsoE+q2x-BT(^?zWpX7*p4&?TUI*u0qmpZNa%D=c$;mT$ za*a=}+sQRDc}0c%bE!V)%LBQ7C)eM2Q;F&e%0Pbkp+5`&a_LO2;>bFK&>sw{Fa(Ce zFc=Qx`gtUbg3+J`>YxFdpao-qgrkH0SkQ%WFdp4~a{W+{C|+gPsK$jy39C{8tY@OWtuH6C=qCbY{GlndtnHzwz0P68^S*5|6(U1i8;d{_g?l#^7~3^7c9T zF9Uz4lSSzf!is`4_$y)1u#h~-^yplW`s7z>etz?vKlfjMDr5gic_rocukJqybtoxp z=)~}vBmY-s$gkss^1fq0z9GQ>#UH`j_xxpl^*Q2iq`x)^h*Tcv#QwDB|6Y9buzgX4 z^Y5hp1hV0d?F;cKf*!fDn$p2yQ}?v7hU1a-Jt|vf)3e t`vl>CjR*2t0@EDGG&8n4uLzN04UF*SYv@r8`bPpf=dZ5e|F=`%{{TOJyygG^ literal 0 HcmV?d00001 diff --git a/Lab7/bpngbttn.cpp b/Lab7/bpngbttn.cpp new file mode 100644 index 0000000..ea50868 --- /dev/null +++ b/Lab7/bpngbttn.cpp @@ -0,0 +1,61 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: BeepingBH; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\BpngBttn.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// BeepingBH +#include "BpngBttn.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class BeepingBH + + +BeepingBH::BeepingBH() + //## begin BeepingBH::BeepingBH%.hasinit preserve=no + //## end BeepingBH::BeepingBH%.hasinit + //## begin BeepingBH::BeepingBH%.initialization preserve=yes + //## end BeepingBH::BeepingBH%.initialization +{ + //## begin BeepingBH::BeepingBH%.body preserve=yes + //## end BeepingBH::BeepingBH%.body +} + +BeepingBH::~BeepingBH() +{ + //## begin BeepingBH::~BeepingBH%.body preserve=yes + //## end BeepingBH::~BeepingBH%.body +} + + + +//## Other Operations (implementation) +void BeepingBH::doOnClick () +{ + //## begin BeepingBH::doOnClick%940854121.body preserve=yes + MessageBeep(0xFFFFFFFF); + //## end BeepingBH::doOnClick%940854121.body +} + +// Additional Declarations + //## begin BeepingBH.declarations preserve=yes + //## end BeepingBH.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/bpngbttn.h b/Lab7/bpngbttn.h new file mode 100644 index 0000000..787551f --- /dev/null +++ b/Lab7/bpngbttn.h @@ -0,0 +1,89 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: BeepingBH; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\BpngBttn.h + +#ifndef BpngBttn_h +#define BpngBttn_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Handler +#include "Handler.h" +// BH +#include "BttnHndl.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: BeepingBH +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class BeepingBH : public Handler, //## Inherits: + public BH //## Inherits: +{ + //## begin BeepingBH.initialDeclarations preserve=yes + //## end BeepingBH.initialDeclarations + + public: + + //## Constructors (specified) + //## Operation: BeepingBH%941014000 + BeepingBH (); + + //## Destructor (generated) + ~BeepingBH(); + + + //## Other Operations (specified) + //## Operation: doOnClick%940854121 + void doOnClick (); + + // Additional Public Declarations + //## begin BeepingBH.public preserve=yes + //## end BeepingBH.public + + protected: + // Data Members for Class Attributes + + // Additional Protected Declarations + //## begin BeepingBH.protected preserve=yes + //## end BeepingBH.protected + + private: + // Additional Private Declarations + //## begin BeepingBH.private preserve=yes + //## end BeepingBH.private + + private: //## implementation + // Additional Implementation Declarations + //## begin BeepingBH.implementation preserve=yes + //## end BeepingBH.implementation + +}; + +//## begin BeepingBH.postscript preserve=yes +//## end BeepingBH.postscript + +// Class BeepingBH + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/bttnhndl.cpp b/Lab7/bttnhndl.cpp new file mode 100644 index 0000000..8bc9758 --- /dev/null +++ b/Lab7/bttnhndl.cpp @@ -0,0 +1,54 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: BH; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\BttnHndl.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// BH +#include "BttnHndl.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class BH + +BH::BH() + //## begin BH::BH%.hasinit preserve=no + //## end BH::BH%.hasinit + //## begin BH::BH%.initialization preserve=yes + //## end BH::BH%.initialization +{ + //## begin BH::BH%.body preserve=yes + //## end BH::BH%.body +} + + +BH::~BH() +{ + //## begin BH::~BH%.body preserve=yes + //## end BH::~BH%.body +} + + +// Additional Declarations + //## begin BH.declarations preserve=yes + //## end BH.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + + diff --git a/Lab7/bttnhndl.h b/Lab7/bttnhndl.h new file mode 100644 index 0000000..4e67b6d --- /dev/null +++ b/Lab7/bttnhndl.h @@ -0,0 +1,80 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: BH; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\BttnHndl.h + +#ifndef BttnHndl_h +#define BttnHndl_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: BH; Abstract +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class BH +{ + //## begin BH.initialDeclarations preserve=yes + //## end BH.initialDeclarations + + public: + //## Constructors (generated) + BH(); + + //## Destructor (generated) + ~BH(); + + + //## Other Operations (specified) + //## Operation: doOnClick%941103435 + virtual void doOnClick () = 0; + + // Additional Public Declarations + //## begin BH.public preserve=yes + //## end BH.public + + protected: + // Additional Protected Declarations + //## begin BH.protected preserve=yes + //## end BH.protected + + private: + // Additional Private Declarations + //## begin BH.private preserve=yes + //## end BH.private + + private: //## implementation + // Additional Implementation Declarations + //## begin BH.implementation preserve=yes + //## end BH.implementation + +}; + +//## begin BH.postscript preserve=yes +//## end BH.postscript + +// Class BH + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/button.cpp b/Lab7/button.cpp new file mode 100644 index 0000000..306ce39 --- /dev/null +++ b/Lab7/button.cpp @@ -0,0 +1,113 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Button; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Button.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// Button +#include "Button.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Button + + + +Button::Button() + //## begin Button::Button%.hasinit preserve=no + //## end Button::Button%.hasinit + //## begin Button::Button%.initialization preserve=yes + //## end Button::Button%.initialization +{ + //## begin Button::Button%.body preserve=yes + //## end Button::Button%.body +} + +Button::Button (int xpos, int ypos, int width, int height, char* text) + //## begin Button::Button%940854117.hasinit preserve=no + //## end Button::Button%940854117.hasinit + //## begin Button::Button%940854117.initialization preserve=yes + //## end Button::Button%940854117.initialization +{ + //## begin Button::Button%940854117.body preserve=yes + Button::xpos = xpos; + Button::ypos = ypos; + Button::width = width; + Button::height = height; + Button::text = text; + //## end Button::Button%940854117.body +} + + +Button::~Button() +{ + //## begin Button::~Button%.body preserve=yes + //## end Button::~Button%.body +} + + + +//## Other Operations (implementation) +void Button::handleMouseEvent (Event e) +{ + //## begin Button::handleMouseEvent%940929796.body preserve=yes + the_BH->doOnClick(); + //## end Button::handleMouseEvent%940929796.body +} + +void Button::draw (Graphics& g) +{ + //## begin Button::draw%940929797.body preserve=yes + Rectangle r; + int absX, absY; + + getPpp()->getAbsPos(&r); + + absX = r.getXpos() + xpos; + absY = r.getYpos() + ypos; + + g.drawButton(absX, absY, width, height, text); + //## end Button::draw%940929797.body +} + +void Button::handleKeyEvent (Event e) +{ + //## begin Button::handleKeyEvent%941013995.body preserve=yes + //## end Button::handleKeyEvent%941013995.body +} + +bool Button::isHit (int x, int y) +{ + //## begin Button::isHit%941013997.body preserve=yes + return((x >= xpos) & (x < xpos + width) & (y >= ypos) & (y < ypos + height)); + //## end Button::isHit%941013997.body +} + +void Button::setAction (BH* bh) +{ + //## begin Button::setAction%941013999.body preserve=yes + the_BH = bh; + //## end Button::setAction%941013999.body +} + +// Additional Declarations + //## begin Button.declarations preserve=yes + //## end Button.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/button.h b/Lab7/button.h new file mode 100644 index 0000000..42d5d94 --- /dev/null +++ b/Lab7/button.h @@ -0,0 +1,160 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Button; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Button.h + +#ifndef Button_h +#define Button_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Component +#include "Compnent.h" +// Panel +#include "Panel.h" +// BH +#include "BttnHndl.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Button +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Panel { -> } + +class Button : public Component //## Inherits: +{ + //## begin Button.initialDeclarations preserve=yes + //## end Button.initialDeclarations + + public: + //## Constructors (generated) + Button(); + + //## Constructors (specified) + //## Operation: Button%940854117 + Button (int xpos, int ypos, int width, int height, char* text); + + //## Destructor (generated) + ~Button(); + + + //## Other Operations (specified) + //## Operation: handleMouseEvent%940929796 + void handleMouseEvent (Event e); + + //## Operation: draw%940929797 + void draw (Graphics& g); + + //## Operation: handleKeyEvent%941013995 + void handleKeyEvent (Event e); + + //## Operation: isHit%941013997 + bool isHit (int x, int y); + + //## Operation: setAction%941013999 + void setAction (BH* bh); + + // Additional Public Declarations + //## begin Button.public preserve=yes + //## end Button.public + + protected: + // Additional Protected Declarations + //## begin Button.protected preserve=yes + //## end Button.protected + + private: + //## Get and Set Operations for Has Relationships (generated) + + //## Documentation Button::.has + const BH * get_the_BH () const; + void set_the_BH (BH * value); + + //## Get and Set Operations for Class Attributes (generated) + + //## Attribute: text + const char* get_text () const; + void set_text (char* value); + + // Additional Private Declarations + //## begin Button.private preserve=yes + //## end Button.private + + private: //## implementation + // Data Members for Has Relationships + + //## begin Button::.has preserve=no private: BH {1 -> 1RO} + BH *the_BH; + //## end Button::.has + + // Data Members for Class Attributes + + //## begin Button::text.attr preserve=no private: char* {U} + char* text; + //## end Button::text.attr + + // Additional Implementation Declarations + //## begin Button.implementation preserve=yes + //## end Button.implementation + +}; + +//## begin Button.postscript preserve=yes +//## end Button.postscript + +// Class Button + +//## Get and Set Operations for Has Relationships (inline) + +inline const BH * Button::get_the_BH () const +{ + //## begin Button::get_the_BH%.get preserve=no + return the_BH; + //## end Button::get_the_BH%.get +} + +inline void Button::set_the_BH (BH * value) +{ + //## begin Button::set_the_BH%.set preserve=no + the_BH = value; + //## end Button::set_the_BH%.set +} + +//## Get and Set Operations for Class Attributes (inline) + +inline const char* Button::get_text () const +{ + //## begin Button::get_text%.get preserve=no + return text; + //## end Button::get_text%.get +} + +inline void Button::set_text (char* value) +{ + //## begin Button::set_text%.set preserve=no + text = value; + //## end Button::set_text%.set +} + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/cmpnntls.cpp b/Lab7/cmpnntls.cpp new file mode 100644 index 0000000..2cbbaad --- /dev/null +++ b/Lab7/cmpnntls.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComponentList; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\CmpnntLs.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// ComponentList +#include "CmpnntLs.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin ComponentList.instantiation preserve=no +template class List< Component* >; +//## end ComponentList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/cmpnntls.h b/Lab7/cmpnntls.h new file mode 100644 index 0000000..60972d9 --- /dev/null +++ b/Lab7/cmpnntls.h @@ -0,0 +1,49 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ComponentList; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\CmpnntLs.h + +#ifndef CmpnntLs_h +#define CmpnntLs_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Component +#include "Compnent.h" +// XList +#include "List.h" +//## begin module.additionalDeclarations preserve=yes +class Component; +//## end module.additionalDeclarations + + +//## Class: ComponentList; Instantiated Class +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Component { -> } + +typedef List< Component* > ComponentList; + +//## begin ComponentList.postscript preserve=yes +//## end ComponentList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/cmpstcmp.cpp b/Lab7/cmpstcmp.cpp new file mode 100644 index 0000000..09db577 --- /dev/null +++ b/Lab7/cmpstcmp.cpp @@ -0,0 +1,124 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: CompositeComponent; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\CmpstCmp.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// CompositeComponent +#include "CmpstCmp.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class CompositeComponent + + + +CompositeComponent::CompositeComponent() + //## begin CompositeComponent::CompositeComponent%.hasinit preserve=no + //## end CompositeComponent::CompositeComponent%.hasinit + //## begin CompositeComponent::CompositeComponent%.initialization preserve=yes + //## end CompositeComponent::CompositeComponent%.initialization +{ + //## begin CompositeComponent::CompositeComponent%.body preserve=yes + //## end CompositeComponent::CompositeComponent%.body +} + + +CompositeComponent::~CompositeComponent() +{ + //## begin CompositeComponent::~CompositeComponent%.body preserve=yes + //## end CompositeComponent::~CompositeComponent%.body +} + + + +//## Other Operations (implementation) +void CompositeComponent::draw (Graphics& g) +{ + //## begin CompositeComponent::draw%940929799.body preserve=yes + Component *cTmp; + + if(!cList.isEmpty()){ + cTmp = cList.getFirst(); + cTmp->draw(g); + + while(!cList.isLast()){ + cTmp = cList.getNext(); + cTmp->draw(g); + } + } + //## end CompositeComponent::draw%940929799.body +} + +void CompositeComponent::add (Component* c) +{ + //## begin CompositeComponent::add%940945810.body preserve=yes + cList.addElement(c); + active = c; + //## end CompositeComponent::add%940945810.body +} + +void CompositeComponent::handleKeyEvent (Event e) +{ + //## begin CompositeComponent::handleKeyEvent%941013991.body preserve=yes + //## end CompositeComponent::handleKeyEvent%941013991.body +} + +void CompositeComponent::handleMouseEvent (Event e) +{ + //## begin CompositeComponent::handleMouseEvent%941013992.body preserve=yes + Component *cTmp; + + if(!cList.isEmpty()){ + cTmp = cList.getFirst(); + if(cTmp->isHit(e.getxpos()-xpos, e.getypos()-ypos)){ + e.setxpos(e.getxpos()-xpos); + e.setypos(e.getypos()-ypos); + active = cTmp; + cTmp->handleMouseEvent(e); + } + + while(!cList.isLast()){ + cTmp = cList.getNext(); + if(cTmp->isHit(e.getxpos()-xpos, e.getypos()-ypos)){ + e.setxpos(e.getxpos()-xpos); + e.setypos(e.getypos()-ypos); + active = cTmp; + cTmp->handleMouseEvent(e); + } + } + } + + //## end CompositeComponent::handleMouseEvent%941013992.body +} + +bool CompositeComponent::isHit (int x, int y) +{ + //## begin CompositeComponent::isHit%941013998.body preserve=yes + return((x >= xpos) & (x < xpos + width) & (y >= ypos) & (y < ypos + height)); + //## end CompositeComponent::isHit%941013998.body +} + +// Additional Declarations + //## begin CompositeComponent.declarations preserve=yes + //## end CompositeComponent.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + + diff --git a/Lab7/cmpstcmp.h b/Lab7/cmpstcmp.h new file mode 100644 index 0000000..16c0fc2 --- /dev/null +++ b/Lab7/cmpstcmp.h @@ -0,0 +1,108 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: CompositeComponent; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\CmpstCmp.h + +#ifndef CmpstCmp_h +#define CmpstCmp_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Component +#include "Compnent.h" +// ComponentList +#include "CmpnntLs.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: CompositeComponent +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class CompositeComponent : public Component //## Inherits: +{ + //## begin CompositeComponent.initialDeclarations preserve=yes + //## end CompositeComponent.initialDeclarations + + public: + //## Constructors (generated) + CompositeComponent(); + + //## Destructor (generated) + ~CompositeComponent(); + + + //## Other Operations (specified) + //## Operation: draw%940929799 + void draw (Graphics& g); + + //## Operation: add%940945810 + void add (Component* c); + + //## Operation: handleKeyEvent%941013991 + void handleKeyEvent (Event e); + + //## Operation: handleMouseEvent%941013992 + void handleMouseEvent (Event e); + + //## Operation: isHit%941013998 + bool isHit (int x, int y); + + // Additional Public Declarations + //## begin CompositeComponent.public preserve=yes + //## end CompositeComponent.public + + protected: + // Additional Protected Declarations + //## begin CompositeComponent.protected preserve=yes + //## end CompositeComponent.protected + + private: + // Additional Private Declarations + //## begin CompositeComponent.private preserve=yes + //## end CompositeComponent.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation CompositeComponent::cList.has + //## begin CompositeComponent::cList.has preserve=no private: ComponentList {1 -> 1VO} + ComponentList cList; + //## end CompositeComponent::cList.has + + //## Documentation CompositeComponent::active.has + //## begin CompositeComponent::active.has preserve=no private: Component {1 -> RO} + Component *active; + //## end CompositeComponent::active.has + + // Additional Implementation Declarations + //## begin CompositeComponent.implementation preserve=yes + //## end CompositeComponent.implementation + +}; + +//## begin CompositeComponent.postscript preserve=yes +//## end CompositeComponent.postscript + +// Class CompositeComponent + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/compnent.cpp b/Lab7/compnent.cpp new file mode 100644 index 0000000..8cd6072 --- /dev/null +++ b/Lab7/compnent.cpp @@ -0,0 +1,72 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Component; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Compnent.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Component +#include "Compnent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Component + + + + + + +Component::Component() + //## begin Component::Component%.hasinit preserve=no + //## end Component::Component%.hasinit + //## begin Component::Component%.initialization preserve=yes + //## end Component::Component%.initialization +{ + //## begin Component::Component%.body preserve=yes + //## end Component::Component%.body +} + + +Component::~Component() +{ + //## begin Component::~Component%.body preserve=yes + //## end Component::~Component%.body +} + + + +//## Other Operations (implementation) +Panel* Component::getPpp () +{ + //## begin Component::getPpp%940945811.body preserve=yes + return ppp; + //## end Component::getPpp%940945811.body +} + +void Component::setPpp (Panel* p) +{ + //## begin Component::setPpp%940945812.body preserve=yes + ppp = p; + //## end Component::setPpp%940945812.body +} + +// Additional Declarations + //## begin Component.declarations preserve=yes + //## end Component.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/compnent.h b/Lab7/compnent.h new file mode 100644 index 0000000..3ef1cf2 --- /dev/null +++ b/Lab7/compnent.h @@ -0,0 +1,133 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Component; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Compnent.h + +#ifndef Compnent_h +#define Compnent_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Event +#include "Event.h" +// Graphics +#include "Graphics.h" +// Rectangle +#include "Rectngle.h" +//## begin module.additionalDeclarations preserve=yes +class Panel; +//## end module.additionalDeclarations + + +//## Class: Component; Abstract +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Event { -> } +//## Uses: ; Graphics { -> } +//## Uses: ; Rectangle { -> } + +class Component +{ + //## begin Component.initialDeclarations preserve=yes + //## end Component.initialDeclarations + + public: + //## Constructors (generated) + Component(); + + //## Destructor (generated) + ~Component(); + + + //## Other Operations (specified) + //## Operation: draw%940929791 + virtual void draw (Graphics& g) = 0; + + //## Operation: getPpp%940945811 + Panel* getPpp (); + + //## Operation: setPpp%940945812 + void setPpp (Panel* p); + + //## Operation: handleMouseEvent%941013993 + virtual void handleMouseEvent (Event e) = 0; + + //## Operation: handleKeyEvent%941013994 + virtual void handleKeyEvent (Event e) = 0; + + //## Operation: isHit%941013996 + virtual bool isHit (int x, int y) = 0; + + // Additional Public Declarations + //## begin Component.public preserve=yes + //## end Component.public + + protected: + // Data Members for Class Attributes + + //## Attribute: xpos + //## begin Component::xpos.attr preserve=no protected: int {U} + int xpos; + //## end Component::xpos.attr + + //## Attribute: ypos + //## begin Component::ypos.attr preserve=no protected: int {U} + int ypos; + //## end Component::ypos.attr + + //## Attribute: width + //## begin Component::width.attr preserve=no protected: int {U} + int width; + //## end Component::width.attr + + //## Attribute: height + //## begin Component::height.attr preserve=no protected: int {U} + int height; + //## end Component::height.attr + + //## Attribute: ppp + //## begin Component::ppp.attr preserve=no protected: Panel* {U} + Panel* ppp; + //## end Component::ppp.attr + + // Additional Protected Declarations + //## begin Component.protected preserve=yes + //## end Component.protected + + private: + // Additional Private Declarations + //## begin Component.private preserve=yes + //## end Component.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Component.implementation preserve=yes + //## end Component.implementation + +}; + +//## begin Component.postscript preserve=yes +//## end Component.postscript + +// Class Component + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/desktop.cpp b/Lab7/desktop.cpp new file mode 100644 index 0000000..7a8380d --- /dev/null +++ b/Lab7/desktop.cpp @@ -0,0 +1,137 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Desktop; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Desktop.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// Desktop +#include "Desktop.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Desktop + + + +Desktop::Desktop() + //## begin Desktop::Desktop%.hasinit preserve=no + //## end Desktop::Desktop%.hasinit + //## begin Desktop::Desktop%.initialization preserve=yes + //## end Desktop::Desktop%.initialization +{ + //## begin Desktop::Desktop%.body preserve=yes + //## end Desktop::Desktop%.body +} + + +Desktop::~Desktop() +{ + //## begin Desktop::~Desktop%.body preserve=yes + //## end Desktop::~Desktop%.body +} + + + +//## Other Operations (implementation) +void Desktop::handleMouseEvent (Event e) +{ + //## begin Desktop::handleMouseEvent%940854123.body preserve=yes + Window *wTmp; + + if(active->isHit(e.getxpos(),e.getypos())) + active->handleMouseEvent(e); + else if(!wList.isEmpty()){ + wTmp = wList.getFirst(); + if(wTmp->isHit(e.getxpos(),e.getypos())){ + active = wTmp; + wTmp->handleMouseEvent(e); + } + while(!wList.isLast()){ + wTmp = wList.getNext(); + if(wTmp->isHit(e.getxpos(),e.getypos())){ + active = wTmp; + wTmp->handleMouseEvent(e); + } + } + } + + //## end Desktop::handleMouseEvent%940854123.body +} + +void Desktop::draw (Graphics& gd) +{ + //## begin Desktop::draw%940929795.body preserve=yes + Window *wTmp; + + if(!wList.isEmpty()){ + wTmp = wList.getFirst(); + wTmp->draw(gd); + + while(!wList.isLast()){ + wTmp = wList.getNext(); + wTmp->draw(gd); + } + } + active->draw(gd); + //## end Desktop::draw%940929795.body +} + +void Desktop::add (Window* w) +{ + //## begin Desktop::add%940945814.body preserve=yes + wList.addElement(w); + active = w; + //## end Desktop::add%940945814.body +} + +void Desktop::run (EventReader& er, Graphics& gd) +{ + //## begin Desktop::run%940945815.body preserve=yes + Event ev; + + + + while(1){ + ev = er.getEvent(); + switch(ev.getEventType()){ + case MOUSE_E: handleMouseEvent(ev); + draw(gd); + break; + case KEY_E: handleKeyEvent(ev); + draw(gd); + break; + default: break; + } + + + } + //## end Desktop::run%940945815.body +} + +void Desktop::handleKeyEvent (Event e) +{ + //## begin Desktop::handleKeyEvent%941013987.body preserve=yes + //## end Desktop::handleKeyEvent%941013987.body +} + +// Additional Declarations + //## begin Desktop.declarations preserve=yes + //## end Desktop.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/desktop.h b/Lab7/desktop.h new file mode 100644 index 0000000..6b4011c --- /dev/null +++ b/Lab7/desktop.h @@ -0,0 +1,115 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Desktop; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Desktop.h + +#ifndef Desktop_h +#define Desktop_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Window +#include "Window.h" +// EventReader +#include "EvntRder.h" +// Graphics +#include "Graphics.h" +// WindowList +#include "WndwList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Desktop +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Graphics { -> } +//## Uses: ; EventReader { -> } + +class Desktop +{ + //## begin Desktop.initialDeclarations preserve=yes + //## end Desktop.initialDeclarations + + public: + //## Constructors (generated) + Desktop(); + + //## Destructor (generated) + ~Desktop(); + + + //## Other Operations (specified) + //## Operation: handleMouseEvent%940854123 + void handleMouseEvent (Event e); + + //## Operation: draw%940929795 + void draw (Graphics& gd); + + //## Operation: add%940945814 + void add (Window* w); + + //## Operation: run%940945815 + void run (EventReader& er, Graphics& gd); + + //## Operation: handleKeyEvent%941013987 + void handleKeyEvent (Event e); + + // Additional Public Declarations + //## begin Desktop.public preserve=yes + //## end Desktop.public + + protected: + // Additional Protected Declarations + //## begin Desktop.protected preserve=yes + //## end Desktop.protected + + private: + // Additional Private Declarations + //## begin Desktop.private preserve=yes + //## end Desktop.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Desktop::active.has + //## begin Desktop::active.has preserve=no private: Window {1 -> 1RO} + Window *active; + //## end Desktop::active.has + + //## Documentation Desktop::wList.has + //## begin Desktop::wList.has preserve=no private: WindowList {1 -> 1VO} + WindowList wList; + //## end Desktop::wList.has + + // Additional Implementation Declarations + //## begin Desktop.implementation preserve=yes + //## end Desktop.implementation + +}; + +//## begin Desktop.postscript preserve=yes +//## end Desktop.postscript + +// Class Desktop + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/event.cpp b/Lab7/event.cpp new file mode 100644 index 0000000..cf8f187 --- /dev/null +++ b/Lab7/event.cpp @@ -0,0 +1,98 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Event; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Event.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Event +#include "Event.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Event + + + + +Event::Event() + //## begin Event::Event%.hasinit preserve=no + //## end Event::Event%.hasinit + //## begin Event::Event%.initialization preserve=yes + //## end Event::Event%.initialization +{ + //## begin Event::Event%.body preserve=yes + //## end Event::Event%.body +} + + +Event::~Event() +{ + //## begin Event::~Event%.body preserve=yes + //## end Event::~Event%.body +} + + + +//## Other Operations (implementation) +EVENT_T Event::getEventType () +{ + //## begin Event::getEventType%941013981.body preserve=yes + return eventType; + //## end Event::getEventType%941013981.body +} + +void Event::setEventType (EVENT_T e) +{ + //## begin Event::setEventType%941013982.body preserve=yes + eventType = e; + //## end Event::setEventType%941013982.body +} + +int Event::getxpos () +{ + //## begin Event::getxpos%941013983.body preserve=yes + return xpos; + //## end Event::getxpos%941013983.body +} + +int Event::getypos () +{ + //## begin Event::getypos%941013984.body preserve=yes + return ypos; + //## end Event::getypos%941013984.body +} + +void Event::setxpos (int x) +{ + //## begin Event::setxpos%941013985.body preserve=yes + xpos = x; + //## end Event::setxpos%941013985.body +} + +void Event::setypos (int y) +{ + //## begin Event::setypos%941013986.body preserve=yes + ypos = y; + //## end Event::setypos%941013986.body +} + +// Additional Declarations + //## begin Event.declarations preserve=yes + //## end Event.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/event.h b/Lab7/event.h new file mode 100644 index 0000000..911703e --- /dev/null +++ b/Lab7/event.h @@ -0,0 +1,113 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Event; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Event.h + +#ifndef Event_h +#define Event_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +typedef enum {NO_E, MOUSE_E, KEY_E} EVENT_T; +//## end module.additionalDeclarations + + +//## Class: Event +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Event +{ + //## begin Event.initialDeclarations preserve=yes + //## end Event.initialDeclarations + + public: + //## Constructors (generated) + Event(); + + //## Destructor (generated) + ~Event(); + + + //## Other Operations (specified) + //## Operation: getEventType%941013981 + EVENT_T getEventType (); + + //## Operation: setEventType%941013982 + void setEventType (EVENT_T e); + + //## Operation: getxpos%941013983 + int getxpos (); + + //## Operation: getypos%941013984 + int getypos (); + + //## Operation: setxpos%941013985 + void setxpos (int x); + + //## Operation: setypos%941013986 + void setypos (int y); + + // Additional Public Declarations + //## begin Event.public preserve=yes + //## end Event.public + + protected: + // Data Members for Class Attributes + + //## Attribute: eventType + //## begin Event::eventType.attr preserve=no private: EVENT_T {U} + EVENT_T eventType; + //## end Event::eventType.attr + + //## Attribute: xpos + //## begin Event::xpos.attr preserve=no private: int {U} + int xpos; + //## end Event::xpos.attr + + //## Attribute: ypos + //## begin Event::ypos.attr preserve=no private: int {U} + int ypos; + //## end Event::ypos.attr + + // Additional Protected Declarations + //## begin Event.protected preserve=yes + //## end Event.protected + + private: + // Additional Private Declarations + //## begin Event.private preserve=yes + //## end Event.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Event.implementation preserve=yes + //## end Event.implementation + +}; + +//## begin Event.postscript preserve=yes +//## end Event.postscript + +// Class Event + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/evntrder.cpp b/Lab7/evntrder.cpp new file mode 100644 index 0000000..0d4e952 --- /dev/null +++ b/Lab7/evntrder.cpp @@ -0,0 +1,61 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: EventReader; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\EvntRder.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// EventReader +#include "EvntRder.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class EventReader + +EventReader::EventReader() + //## begin EventReader::EventReader%.hasinit preserve=no + //## end EventReader::EventReader%.hasinit + //## begin EventReader::EventReader%.initialization preserve=yes + //## end EventReader::EventReader%.initialization +{ + //## begin EventReader::EventReader%.body preserve=yes + //## end EventReader::EventReader%.body +} + + +EventReader::~EventReader() +{ + //## begin EventReader::~EventReader%.body preserve=yes + //## end EventReader::~EventReader%.body +} + + +// Additional Declarations + //## begin EventReader.declarations preserve=yes + //## end EventReader.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +// Detached code regions: +// WARNING: this code will be lost if code is regenerated. +#if 0 +//## begin EventReader::getEvent%940854116.body preserve=no + return (Event&)*this; +//## end EventReader::getEvent%940854116.body + +#endif diff --git a/Lab7/evntrder.h b/Lab7/evntrder.h new file mode 100644 index 0000000..c60a21d --- /dev/null +++ b/Lab7/evntrder.h @@ -0,0 +1,84 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: EventReader; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\EvntRder.h + +#ifndef EvntRder_h +#define EvntRder_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Event +#include "Event.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: EventReader; Abstract +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Event { -> } + +class EventReader +{ + //## begin EventReader.initialDeclarations preserve=yes + //## end EventReader.initialDeclarations + + public: + //## Constructors (generated) + EventReader(); + + //## Destructor (generated) + ~EventReader(); + + + //## Other Operations (specified) + //## Operation: getEvent%940854116 + virtual Event getEvent () = 0; + + // Additional Public Declarations + //## begin EventReader.public preserve=yes + //## end EventReader.public + + protected: + // Additional Protected Declarations + //## begin EventReader.protected preserve=yes + //## end EventReader.protected + + private: + // Additional Private Declarations + //## begin EventReader.private preserve=yes + //## end EventReader.private + + private: //## implementation + // Additional Implementation Declarations + //## begin EventReader.implementation preserve=yes + //## end EventReader.implementation + +}; + +//## begin EventReader.postscript preserve=yes +//## end EventReader.postscript + +// Class EventReader + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/extbttnh.cpp b/Lab7/extbttnh.cpp new file mode 100644 index 0000000..2d03ae2 --- /dev/null +++ b/Lab7/extbttnh.cpp @@ -0,0 +1,61 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ExitBH; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\ExtBttnH.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// ExitBH +#include "ExtBttnH.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class ExitBH + +ExitBH::ExitBH() + //## begin ExitBH::ExitBH%.hasinit preserve=no + //## end ExitBH::ExitBH%.hasinit + //## begin ExitBH::ExitBH%.initialization preserve=yes + //## end ExitBH::ExitBH%.initialization +{ + //## begin ExitBH::ExitBH%.body preserve=yes + //## end ExitBH::ExitBH%.body +} + + +ExitBH::~ExitBH() +{ + //## begin ExitBH::~ExitBH%.body preserve=yes + //## end ExitBH::~ExitBH%.body +} + + + +//## Other Operations (implementation) +void ExitBH::doOnClick () +{ + //## begin ExitBH::doOnClick%941103436.body preserve=yes + exit(0); + //## end ExitBH::doOnClick%941103436.body +} + +// Additional Declarations + //## begin ExitBH.declarations preserve=yes + //## end ExitBH.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/extbttnh.h b/Lab7/extbttnh.h new file mode 100644 index 0000000..cba57cc --- /dev/null +++ b/Lab7/extbttnh.h @@ -0,0 +1,82 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: ExitBH; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\ExtBttnH.h + +#ifndef ExtBttnH_h +#define ExtBttnH_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// BH +#include "BttnHndl.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: ExitBH +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class ExitBH : public BH //## Inherits: +{ + //## begin ExitBH.initialDeclarations preserve=yes + //## end ExitBH.initialDeclarations + + public: + //## Constructors (generated) + ExitBH(); + + //## Destructor (generated) + ~ExitBH(); + + + //## Other Operations (specified) + //## Operation: doOnClick%941103436 + void doOnClick (); + + // Additional Public Declarations + //## begin ExitBH.public preserve=yes + //## end ExitBH.public + + protected: + // Additional Protected Declarations + //## begin ExitBH.protected preserve=yes + //## end ExitBH.protected + + private: + // Additional Private Declarations + //## begin ExitBH.private preserve=yes + //## end ExitBH.private + + private: //## implementation + // Additional Implementation Declarations + //## begin ExitBH.implementation preserve=yes + //## end ExitBH.implementation + +}; + +//## begin ExitBH.postscript preserve=yes +//## end ExitBH.postscript + +// Class ExitBH + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/graphics.cpp b/Lab7/graphics.cpp new file mode 100644 index 0000000..be7c450 --- /dev/null +++ b/Lab7/graphics.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Graphics; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Graphics.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Graphics +#include "Graphics.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Graphics + +Graphics::Graphics() + //## begin Graphics::Graphics%.hasinit preserve=no + //## end Graphics::Graphics%.hasinit + //## begin Graphics::Graphics%.initialization preserve=yes + //## end Graphics::Graphics%.initialization +{ + //## begin Graphics::Graphics%.body preserve=yes + //## end Graphics::Graphics%.body +} + + +Graphics::~Graphics() +{ + //## begin Graphics::~Graphics%.body preserve=yes + //## end Graphics::~Graphics%.body +} + + +// Additional Declarations + //## begin Graphics.declarations preserve=yes + //## end Graphics.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/graphics.h b/Lab7/graphics.h new file mode 100644 index 0000000..fb5f581 --- /dev/null +++ b/Lab7/graphics.h @@ -0,0 +1,83 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Graphics; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Graphics.h + +#ifndef Graphics_h +#define Graphics_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Graphics; Abstract +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Graphics +{ + //## begin Graphics.initialDeclarations preserve=yes + //## end Graphics.initialDeclarations + + public: + //## Constructors (generated) + Graphics(); + + //## Destructor (generated) + ~Graphics(); + + + //## Other Operations (specified) + //## Operation: drawWindow%940929793 + virtual void drawWindow (int xpos, int ypos, int width, int height, char* name) = 0; + + //## Operation: drawButton%940929794 + virtual void drawButton (int xpos, int ypos, int width, int height, char* text) = 0; + + // Additional Public Declarations + //## begin Graphics.public preserve=yes + //## end Graphics.public + + protected: + // Additional Protected Declarations + //## begin Graphics.protected preserve=yes + //## end Graphics.protected + + private: + // Additional Private Declarations + //## begin Graphics.private preserve=yes + //## end Graphics.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Graphics.implementation preserve=yes + //## end Graphics.implementation + +}; + +//## begin Graphics.postscript preserve=yes +//## end Graphics.postscript + +// Class Graphics + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/handler.cpp b/Lab7/handler.cpp new file mode 100644 index 0000000..9f23ba2 --- /dev/null +++ b/Lab7/handler.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Handler; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Handler.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Handler +#include "Handler.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Handler + +Handler::Handler() + //## begin Handler::Handler%.hasinit preserve=no + //## end Handler::Handler%.hasinit + //## begin Handler::Handler%.initialization preserve=yes + //## end Handler::Handler%.initialization +{ + //## begin Handler::Handler%.body preserve=yes + //## end Handler::Handler%.body +} + + +Handler::~Handler() +{ + //## begin Handler::~Handler%.body preserve=yes + //## end Handler::~Handler%.body +} + + +// Additional Declarations + //## begin Handler.declarations preserve=yes + //## end Handler.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/handler.h b/Lab7/handler.h new file mode 100644 index 0000000..0626d38 --- /dev/null +++ b/Lab7/handler.h @@ -0,0 +1,75 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Handler; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Handler.h + +#ifndef Handler_h +#define Handler_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Handler +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Handler +{ + //## begin Handler.initialDeclarations preserve=yes + //## end Handler.initialDeclarations + + public: + //## Constructors (generated) + Handler(); + + //## Destructor (generated) + ~Handler(); + + // Additional Public Declarations + //## begin Handler.public preserve=yes + //## end Handler.public + + protected: + // Additional Protected Declarations + //## begin Handler.protected preserve=yes + //## end Handler.protected + + private: + // Additional Private Declarations + //## begin Handler.private preserve=yes + //## end Handler.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Handler.implementation preserve=yes + //## end Handler.implementation + +}; + +//## begin Handler.postscript preserve=yes +//## end Handler.postscript + +// Class Handler + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/keyevent.cpp b/Lab7/keyevent.cpp new file mode 100644 index 0000000..496ccd4 --- /dev/null +++ b/Lab7/keyevent.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: KeyEvent; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\KeyEvent.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// KeyEvent +#include "KeyEvent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class KeyEvent + +KeyEvent::KeyEvent() + //## begin KeyEvent::KeyEvent%.hasinit preserve=no + //## end KeyEvent::KeyEvent%.hasinit + //## begin KeyEvent::KeyEvent%.initialization preserve=yes + //## end KeyEvent::KeyEvent%.initialization +{ + //## begin KeyEvent::KeyEvent%.body preserve=yes + //## end KeyEvent::KeyEvent%.body +} + + +KeyEvent::~KeyEvent() +{ + //## begin KeyEvent::~KeyEvent%.body preserve=yes + //## end KeyEvent::~KeyEvent%.body +} + + +// Additional Declarations + //## begin KeyEvent.declarations preserve=yes + //## end KeyEvent.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/keyevent.h b/Lab7/keyevent.h new file mode 100644 index 0000000..c0fcf43 --- /dev/null +++ b/Lab7/keyevent.h @@ -0,0 +1,77 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: KeyEvent; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\KeyEvent.h + +#ifndef KeyEvent_h +#define KeyEvent_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Event +#include "Event.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: KeyEvent +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class KeyEvent : public Event //## Inherits: +{ + //## begin KeyEvent.initialDeclarations preserve=yes + //## end KeyEvent.initialDeclarations + + public: + //## Constructors (generated) + KeyEvent(); + + //## Destructor (generated) + ~KeyEvent(); + + // Additional Public Declarations + //## begin KeyEvent.public preserve=yes + //## end KeyEvent.public + + protected: + // Additional Protected Declarations + //## begin KeyEvent.protected preserve=yes + //## end KeyEvent.protected + + private: + // Additional Private Declarations + //## begin KeyEvent.private preserve=yes + //## end KeyEvent.private + + private: //## implementation + // Additional Implementation Declarations + //## begin KeyEvent.implementation preserve=yes + //## end KeyEvent.implementation + +}; + +//## begin KeyEvent.postscript preserve=yes +//## end KeyEvent.postscript + +// Class KeyEvent + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/lab7.mdl b/Lab7/lab7.mdl new file mode 100644 index 0000000..249f684 --- /dev/null +++ b/Lab7/lab7.mdl @@ -0,0 +1,8269 @@ + +(object Petal + version 40) + +(object Design "Logical View" + is_unit TRUE + is_loaded TRUE + file_name "H:\\WebDocs\\skola\\Avancerad_C++\\Lab7\\lab7.mdl" + quid "381D99010185" + defaults (object defaults + rightMargin 0.250000 + leftMargin 0.250000 + topMargin 0.250000 + bottomMargin 0.500000 + pageOverlap 0.250000 + clipIconLabels TRUE + autoResize TRUE + snapToGrid TRUE + gridX 16 + gridY 16 + defaultFont (object Font + size 9 + face "helvetica" + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + showMessageNum 1 + showClassOfObject TRUE + notation "Booch") + root_usecase_package (object Class_Category "Use Case View" + quid "3814310901FD" + exportControl "Public" + global TRUE + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "38143109024E" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + root_category (object Class_Category "Logical View" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEHOME")) + quid "3814310901F4" + exportControl "Public" + global TRUE + subsystem "lab7" + quidu "38144CB302F8" + logical_models (list unit_reference_list + (object Class_Category "lab7" + quid "38144FE103CA" + exportControl "Public" + subsystem "lab7" + quidu "38144CB302F8" + logical_models (list unit_reference_list + (object Class "KeyEvent" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\KeyEvent.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\KeyEvent.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143FCB026E" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38143FE700C0" + supplier "Event" + quidu "38143F7102FB"))) + (object Class "Window" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Window.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Window.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "3814313B01B9" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "381437DA0184" + label "panel" + supplier "Panel" + quidu "381431650065" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1")) + (object Has_Relationship + quid "381D64F70239" + label "myTD" + supplier "TopDown" + quidu "381D5F3B0332" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3815726802A3" + supplier "Graphics" + quidu "38143C890297")) + operations (list Operations + (object Operation "Window" + quid "381455010272" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "name" + type "char*")) + concurrency "Sequential" + opExportControl "Public" + uid 940854119) + (object Operation "draw" + quid "38156728003F" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929792) + (object Operation "add" + quid "3815A6DE038D" + parameters (list Parameters + (object Parameter "c" + type "Component*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940943118) + (object Operation "isHit" + quid "3816CAF1027C" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 941013988) + (object Operation "handleKeyEvent" + quid "3816CB4D0397" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013989) + (object Operation "handleMouseEvent" + quid "3816CB580108" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013990)) + class_attributes (list class_attribute_list + (object ClassAttribute "name" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "38158545017B" + type "char*") + (object ClassAttribute "xpos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 44))) + quid "38158C9E02AC" + type "int" + exportControl "Protected") + (object ClassAttribute "ypos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "38158CA10364" + type "int" + exportControl "Protected") + (object ClassAttribute "width" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "38158CA5025C" + type "int" + exportControl "Protected") + (object ClassAttribute "height" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "38158CA80134" + type "int" + exportControl "Protected"))) + (object Class "Component" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Compnent.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Compnent.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "381431500097" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3814812B01A7" + supplier "Event" + quidu "38143F7102FB") + (object Uses_Relationship + quid "3815B26E0307" + supplier "Rectangle" + quidu "3815B1950052") + (object Uses_Relationship + quid "38182AC503A7" + supplier "Graphics" + quidu "38143C890297")) + abstract TRUE + operations (list Operations + (object Operation "draw" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "38156978000E" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929791) + (object Operation "getPpp" + quid "3815B8A80331" + result "Panel*" + concurrency "Sequential" + opExportControl "Public" + uid 940945811) + (object Operation "setPpp" + quid "3815B8C100C0" + parameters (list Parameters + (object Parameter "p" + type "Panel*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945812) + (object Operation "handleMouseEvent" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "3816CE12015B" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013993) + (object Operation "handleKeyEvent" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "3816CE1302BB" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013994) + (object Operation "isHit" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "3816CF6901AF" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 941013996)) + class_attributes (list class_attribute_list + (object ClassAttribute "xpos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 44))) + quid "3814395C0021" + type "int" + exportControl "Protected") + (object ClassAttribute "ypos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3814396A03CE" + type "int" + exportControl "Protected") + (object ClassAttribute "width" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3814396F01A5" + type "int" + exportControl "Protected") + (object ClassAttribute "height" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3814398B0263" + type "int" + exportControl "Protected") + (object ClassAttribute "ppp" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3815AE9F00D4" + type "Panel*" + exportControl "Protected"))) + (object Class "Button" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Button.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Button.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "3814315D0371" + fields (list has_relationship_list + (object Has_Relationship + quid "381819080307" + supplier "BH" + quidu "3818189E000C" + exportControl "Private" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "381431A40323" + supplier "Component" + quidu "381431500097")) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3815C3C50260" + supplier "Panel" + quidu "381431650065")) + operations (list Operations + (object Operation "Button" + quid "38145C10031B" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "text" + type "char*")) + concurrency "Sequential" + opExportControl "Public" + uid 940854117) + (object Operation "handleMouseEvent" + quid "381577D0014F" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929796) + (object Operation "draw" + quid "3815781E0300" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929797) + (object Operation "handleKeyEvent" + quid "3816CEA2039D" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013995) + (object Operation "isHit" + quid "3816CF940052" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 941013997) + (object Operation "setAction" + quid "3816E2EC02E8" + parameters (list Parameters + (object Parameter "bh" + type "BH*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013999)) + class_attributes (list class_attribute_list + (object ClassAttribute "text" + quid "381439BA03DD" + type "char*"))) + (object Class "Panel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Panel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Panel.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "381431650065" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38145D0803D6" + supplier "CompositeComponent" + quidu "38145CEF0145")) + operations (list Operations + (object Operation "Panel" + quid "38145588000A" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int")) + concurrency "Sequential" + opExportControl "Public" + uid 940854126) + (object Operation "getAbsPos" + quid "3815AB8101A9" + parameters (list Parameters + (object Parameter "r" + type "Rectangle*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945807) + (object Operation "add" + quid "3815B65F03E4" + parameters (list Parameters + (object Parameter "c" + type "Component*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945809))) + (object Class "Desktop" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Desktop.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Desktop.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "3814316C02E6" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3814324200B3" + label "active" + supplier "Window" + quidu "3814313B01B9" + exportControl "Private" + Containment "By Reference" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1")) + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3814566E001E" + label "wList" + supplier "WindowList" + quidu "3814565001A2" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "38143C8E0077" + supplier "Graphics" + quidu "38143C890297") + (object Uses_Relationship + quid "38143E6D00BC" + supplier "EventReader" + quidu "38143E49022D")) + operations (list Operations + (object Operation "handleMouseEvent" + quid "3814702902B5" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940854123) + (object Operation "draw" + quid "3815626102E0" + parameters (list Parameters + (object Parameter "gd" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929795) + (object Operation "add" + quid "3815B648000B" + parameters (list Parameters + (object Parameter "w" + type "Window*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945814) + (object Operation "run" + quid "3815CF600294" + parameters (list Parameters + (object Parameter "er" + type "EventReader&") + (object Parameter "gd" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945815) + (object Operation "handleKeyEvent" + quid "3816C9C502CB" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013987))) + (object Class "Handler" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Handler.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Handler.cpp")) + quid "381431F90108") + (object Class "BeepingBH" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\BpngBttn.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\BpngBttn.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "3814328100F0" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3814336B034F" + supplier "Handler" + quidu "381431F90108") + (object Inheritance_Relationship + quid "38181932031C" + supplier "BH" + quidu "3818189E000C")) + operations (list Operations + (object Operation "doOnClick" + quid "381478E40024" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940854121))) + (object Parameterized_Class "List" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\List.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\List.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143A1303DB" + operations (list Operations + (object Operation "add" + quid "381459F30309" + parameters (list Parameters + (object Parameter "element" + type "T")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940854125)) + parameters (list Parameters + (object Parameter "T" + type "class"))) + (object Instantiated_Class "ComponentList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\CmpnntLs.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\CmpnntLs.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143A15004F" + instantiation_relationship (object Instantiation_Relationship + quid "38143A5F036C" + supplier "List" + quidu "38143A1303DB") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3814573E012C" + supplier "Component" + quidu "381431500097")) + parameters (list Parameters + (object Parameter "Component*" + type "class"))) + (object Class "Graphics" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Graphics.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Graphics.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143C890297" + abstract TRUE + operations (list Operations + (object Operation "drawWindow" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "381565D9025A" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "name" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929793) + (object Operation "drawButton" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "38156B0202B4" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "text" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929794))) + (object Class "NTConsole" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\NTConsle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\NTConsle.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143CF201ED" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38143CFC0242" + supplier "Graphics" + quidu "38143C890297")) + operations (list Operations + (object Operation "drawWindow" + quid "3815893400E2" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "name" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929802) + (object Operation "drawButton" + quid "38158987029A" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "text" + type "char*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929803))) + (object Class "EventReader" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\EvntRder.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\EvntRder.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143E49022D" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "38143F8802C2" + supplier "Event" + quidu "38143F7102FB")) + abstract TRUE + operations (list Operations + (object Operation "getEvent" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "381441A70204" + result "Event" + concurrency "Sequential" + opExportControl "Public" + uid 940854116))) + (object Class "NTEventReader" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\NTvntRdr.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\NTvntRdr.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143E7A033C" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38143E7E016B" + supplier "EventReader" + quidu "38143E49022D")) + operations (list Operations + (object Operation "getEvent" + quid "3814421E0183" + result "Event" + concurrency "Sequential" + opExportControl "Public" + uid 940854115))) + (object Class "Event" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Event.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Event.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143F7102FB" + operations (list Operations + (object Operation "getEventType" + quid "3816BB9A01E9" + result "EVENT_T" + concurrency "Sequential" + opExportControl "Public" + uid 941013981) + (object Operation "setEventType" + quid "3816BBB70191" + parameters (list Parameters + (object Parameter "e" + type "EVENT_T")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013982) + (object Operation "getxpos" + quid "3816C48B0295" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 941013983) + (object Operation "getypos" + quid "3816C4A70104" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 941013984) + (object Operation "setxpos" + quid "3816C4B7016C" + parameters (list Parameters + (object Parameter "x" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013985) + (object Operation "setypos" + quid "3816C4C6038A" + parameters (list Parameters + (object Parameter "y" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013986)) + class_attributes (list class_attribute_list + (object ClassAttribute "eventType" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3816BB1C03D3" + type "EVENT_T") + (object ClassAttribute "xpos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3816C3F7015B" + type "int") + (object ClassAttribute "ypos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3816C41D02A1" + type "int"))) + (object Class "MouseEvent" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\MosEvent.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\MosEvent.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38143FB4031F" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "38143FBF016C" + supplier "Event" + quidu "38143F7102FB"))) + (object Instantiated_Class "WindowList" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\WndwList.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\WndwList.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple") + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206))) + quid "3814565001A2" + instantiation_relationship (object Instantiation_Relationship + quid "38182C6C007A" + supplier "List" + quidu "38143A1303DB") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381456F70256" + supplier "Window" + quidu "3814313B01B9")) + parameters (list Parameters + (object Parameter "Window*" + type "Class"))) + (object Class "CompositeComponent" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\CmpstCmp.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\CmpstCmp.cpp") + (object Attribute + tool "cg" + name "cg_style" + value "simple")) + quid "38145CEF0145" + fields (list has_relationship_list + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "38143B4A02B6" + label "cList" + supplier "ComponentList" + quidu "38143A15004F" + exportControl "Private" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1")) + (object Has_Relationship + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "381476CF0276" + label "active" + supplier "Component" + quidu "381431500097" + exportControl "Private" + Containment "By Reference" + client_cardinality (value cardinality "1"))) + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "381431A000F6" + supplier "Component" + quidu "381431500097")) + operations (list Operations + (object Operation "draw" + quid "3815788C0362" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940929799) + (object Operation "add" + quid "3815B68C0280" + parameters (list Parameters + (object Parameter "c" + type "Component*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945810) + (object Operation "handleKeyEvent" + quid "3816CD38003F" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013991) + (object Operation "handleMouseEvent" + quid "3816CD4100BB" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941013992) + (object Operation "isHit" + quid "3816CFCC007B" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 941013998)) + statediagram (object State_Diagram "" + quid "381482E403E6" + title "" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list))) + (object Class "Rectangle" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\Rectngle.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\Rectngle.cpp")) + quid "3815B1950052" + operations (list Operations + (object Operation "getXpos" + quid "3815B1EB01FA" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940945803) + (object Operation "getYpos" + quid "3815B2090370" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940945804) + (object Operation "getWidth" + quid "3815B20F0256" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940945805) + (object Operation "getHeight" + quid "3815B21B0311" + result "int" + concurrency "Sequential" + opExportControl "Public" + uid 940945806) + (object Operation "setValue" + quid "3815BC3F00C5" + parameters (list Parameters + (object Parameter "x1" + type "int") + (object Parameter "y1" + type "int") + (object Parameter "x2" + type "int") + (object Parameter "y2" + type "int")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 940945813)) + class_attributes (list class_attribute_list + (object ClassAttribute "xPos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3815B1AA0192" + type "int") + (object ClassAttribute "yPos" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3815B1C80204" + type "int") + (object ClassAttribute "width" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3815B1CD02B5" + type "int") + (object ClassAttribute "height" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "cg_style" + value "noGetSet")) + quid "3815B1DE025F" + type "int"))) + (object Class "BH" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\BttnHndl.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\BttnHndl.cpp")) + quid "3818189E000C" + abstract TRUE + operations (list Operations + (object Operation "doOnClick" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 202))) + quid "381818D80023" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941103435))) + (object Class "ExitBH" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "H:\\kurs\\avC++\\lab7\\ExtBttnH.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "H:\\kurs\\avC++\\lab7\\ExtBttnH.cpp")) + quid "381825230119" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "381825310137" + supplier "BH" + quidu "3818189E000C")) + operations (list Operations + (object Operation "doOnClick" + quid "3818253A0252" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 941103436))) + (object Class "TopDown" + quid "381D5F3B0332" + fields (list has_relationship_list + (object Has_Relationship + quid "381D688102DC" + supplier "MenuList" + quidu "381D605700B0" + Containment "By Value" + supplier_cardinality (value cardinality "1") + client_cardinality (value cardinality "1"))) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381D6A020308" + supplier "MenuItem" + quidu "381D603103A4")) + operations (list Operations + (object Operation "TopDown" + quid "381D62490373" + parameters (list Parameters + (object Parameter "xpos" + type "int") + (object Parameter "ypos" + type "int") + (object Parameter "width" + type "int") + (object Parameter "height" + type "int") + (object Parameter "text" + type "char*")) + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "add" + quid "381D69B00115" + parameters (list Parameters + (object Parameter "item" + type "MenuItem*")) + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "draw" + quid "381D6A74022F" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "isHit" + quid "381D6A740243" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "handleKeyEvent" + quid "381D6A74024D" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "handleMouseEvent" + quid "381D6A740261" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "text" + quid "381D62840043" + type "char*"))) + (object Class "MenuItem" + quid "381D603103A4" + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381D60940284" + supplier "MenuList" + quidu "381D605700B0")) + operations (list Operations + (object Operation "setAction" + quid "381D6970004B" + parameters (list Parameters + (object Parameter "bh" + type "BH*")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "handleMouseEvent" + quid "381D6970005F" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "draw" + quid "381D69700073" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "handleKeyEvent" + quid "381D6970007D" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "isHit" + quid "381D69700091" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "text" + quid "381D699A02CC" + type "char*"))) + (object Instantiated_Class "MenuList" + quid "381D605700B0" + instantiation_relationship (object Instantiation_Relationship + quid "381D6A240357" + supplier "List" + quidu "38143A1303DB") + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381D691F02E3" + supplier "MenuItem" + quidu "381D603103A4")) + parameters (list Parameters + (object Parameter "MenuItem*" + type "class"))) + (object Class "TextField" + quid "381D6A9700B3" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "381D6AB30077" + supplier "Component" + quidu "381431500097")) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "381D6AB80165" + supplier "Panel" + quidu "381431650065")) + operations (list Operations + (object Operation "handleMouseEvent" + quid "381D6ADE02D2" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "draw" + quid "381D6ADE02E6" + parameters (list Parameters + (object Parameter "g" + type "Graphics&")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "handleKeyEvent" + quid "381D6ADE02F0" + parameters (list Parameters + (object Parameter "e" + type "Event")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "isHit" + quid "381D6ADE0304" + parameters (list Parameters + (object Parameter "x" + type "int") + (object Parameter "y" + type "int")) + result "bool" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "text" + quid "381D6B040164" + type "char*"))) + (object Mechanism @1 + logical_models (list unit_reference_list + (object Object "me" + quid "381453CF0024" + collaborators (list link_list + (object Link + quid "381453D700E3" + supplier "$UNNAMED$0" + quidu "381D990102BD" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "Desktop" + quid "381453D700E4" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0)))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$0" + quid "381453D40049" + class "Desktop" + quidu "3814316C02E6" + persistence "Transient" + multi FALSE))) + (object Mechanism @2 + logical_models (list unit_reference_list + (object Object "me" + quid "3814546E00EB" + collaborators (list link_list + (object Link + quid "38145497002B" + supplier "$UNNAMED$1" + quidu "381D990102C3" + supplier_containment "By Value" + client_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (Window*)" + quid "38145497002C" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3815B648000B")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$1" + quid "381454760132" + collaborators (list link_list + (object Link + quid "381457C00205" + supplier "wList" + quidu "381457BC0155" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (T)" + quid "381457C00206" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "381459F30309")))) + class "Desktop" + quidu "3814316C02E6" + persistence "Transient" + multi FALSE) + (object Object "wList" + quid "381457BC0155" + class "WindowList" + quidu "3814565001A2" + persistence "Transient" + multi FALSE))) + (object Mechanism @3 + logical_models (list unit_reference_list + (object Object "me" + quid "381454EE0199" + collaborators (list link_list + (object Link + quid "381454FE0264" + supplier "$UNNAMED$2" + quidu "381D990102CE" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "Window (int, int, int, int, char*)" + quid "381454FE0265" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "381455010272")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$2" + quid "381454F603CB" + collaborators (list link_list + (object Link + quid "381455770362" + supplier "$UNNAMED$3" + quidu "381D990102D3" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "Panel (int, int, int, int)" + quid "381455770363" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "38145588000A")))) + class "Window" + quidu "3814313B01B9" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$3" + quid "381454FB01F2" + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE))) + (object Mechanism @4 + logical_models (list unit_reference_list + (object Object "me" + quid "3814593403AF" + collaborators (list link_list + (object Link + quid "381459700365" + supplier "$UNNAMED$4" + quidu "381D990102D9" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (Component*)" + quid "381459700366" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3815B65F03E4")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$4" + quid "3814594B0022" + collaborators (list link_list + (object Link + quid "381459AB0016" + supplier "cList" + quidu "3814599A03E7" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "add (T)" + quid "381459AB0017" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "381459F30309"))) + (object Link + quid "3815ADB3028D" + supplier "$UNNAMED$4" + quidu "3814594B0022" + messages (list Messages + (object Message "setParent (Component*)" + quid "3815ADB3028E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + Operation "setParent" + quidu "3815ADCB0210")))) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "cList" + quid "3814599A03E7" + class "ComponentList" + quidu "38143A15004F" + persistence "Transient" + multi FALSE))) + (object Mechanism @5 + logical_models (list unit_reference_list + (object Object "me" + quid "38145C0300A5" + collaborators (list link_list + (object Link + quid "38145C0F00CB" + supplier "$UNNAMED$5" + quidu "381D990102E7" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "Button (int, int, int, int, char*)" + quid "38145C0F00CC" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "38145C10031B")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$5" + quid "38145C05030B" + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE))) + (object Mechanism @6 + logical_models (list unit_reference_list + (object Object "$UNNAMED$6" + quid "38146FAF02F6" + class "EventReader" + quidu "38143E49022D" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$7" + quid "38147002006A" + collaborators (list link_list + (object Link + quid "381470E60112" + supplier "active" + quidu "381470DD008D" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "381470E60113" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "3816CB580108"))) + (object Link + quid "3814767300A7" + supplier "$UNNAMED$7" + quidu "38147002006A" + messages (list Messages + (object Message "draw (Graphics&)" + quid "38181ED9027C" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 7 + quidu "3815626102E0"))) + (object Link + quid "3816B487013B" + supplier "$UNNAMED$6" + quidu "38146FAF02F6" + supplier_containment "By Value" + supplier_visibility "PARAMETER" + messages (list Messages + (object Message "getEvent ( )" + quid "3816B487013C" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "381441A70204"))) + (object Link + quid "38181FA70282" + supplier "$UNNAMED$8" + quidu "381D99010306" + supplier_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "Find right x&y in windows-list" + quid "38181FA70283" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 5)))) + class "Desktop" + quidu "3814316C02E6" + persistence "Transient" + multi FALSE) + (object Object "active" + quid "381470DD008D" + collaborators (list link_list + (object Link + quid "381472EF034C" + supplier "panel" + quidu "381472EB0116" + supplier_containment "By Reference" + client_containment "By Value" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "381472EF034D" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "3816CD4100BB")))) + class "Window" + quidu "3814313B01B9" + persistence "Transient" + multi FALSE) + (object Object "panel" + quid "381472EB0116" + collaborators (list link_list + (object Link + quid "381474040033" + supplier "panel" + quidu "381472EB0116" + messages (list Messages + (object Message "findComponent (Event*)" + quid "381474B50114" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 3 + Operation "findComponent" + quidu "381578A101D2"))) + (object Link + quid "381474D202BB" + supplier "$UNNAMED$9" + quidu "381D99010305" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "381474D202BC" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 4 + quidu "3816CE12015B")))) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$9" + quid "381474CD02F9" + class "Component" + quidu "381431500097" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$8" + quid "38181F6D03E7" + collaborators (list link_list + (object Link + quid "381820160200" + supplier "active" + quidu "381470DD008D" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "3818204402C4" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 6 + quidu "3816CB580108")))) + class "WindowList" + quidu "3814565001A2" + persistence "Transient" + multi FALSE))) + (object Mechanism @7 + logical_models (list unit_reference_list + (object Object "$UNNAMED$10" + quid "3814789A00DC" + collaborators (list link_list + (object Link + quid "381478A10032" + supplier "$UNNAMED$11" + quidu "381D99010310" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "381478A10033" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "381577D0014F")))) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$11" + quid "3814789D019E" + collaborators (list link_list + (object Link + quid "381478E10323" + supplier "$UNNAMED$12" + quidu "381D99010315" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "doOnClick ( )" + quid "381478E10324" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "381478E40024")))) + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$12" + quid "381478B602DB" + class "ExitBH" + quidu "381825230119" + persistence "Transient" + multi FALSE))) + (object Mechanism @8 + logical_models (list unit_reference_list + (object Object "$UNNAMED$13" + quid "3814795900CC" + collaborators (list link_list + (object Link + quid "3814795F0284" + supplier "$UNNAMED$14" + quidu "381D9901031B" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "3814795F0285" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3816CD4100BB")))) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$14" + quid "3814795B0198" + collaborators (list link_list + (object Link + quid "381479C3038C" + supplier "$UNNAMED$14" + quidu "3814795B0198" + messages (list Messages + (object Message "Find right Component" + quid "38182302010B" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1))) + (object Link + quid "381479E20015" + supplier "active" + quidu "381479D90080" + supplier_containment "By Reference" + supplier_visibility "FIELD" + messages (list Messages + (object Message "handleMouseEvent (Event)" + quid "381479E20016" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "3816CE12015B")))) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "active" + quid "381479D90080" + class "Component" + quidu "381431500097" + persistence "Transient" + multi FALSE))) + (object Mechanism @9 + logical_models (list unit_reference_list + (object Object "me" + quid "38156250026D" + collaborators (list link_list + (object Link + quid "381562590252" + supplier "$UNNAMED$15" + quidu "381D99010328" + messages (list Messages + (object Message "draw (Graphics&)" + quid "381562590253" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3815626102E0")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$15" + quid "3815625603A2" + collaborators (list link_list + (object Link + quid "381562DD0216" + supplier "$UNNAMED$16" + quidu "381D9901032E" + messages (list Messages + (object Message "drawWindow (int, int, int, int, char*)" + quid "3815669200E4" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "381565D9025A"))) + (object Link + quid "381566A403CF" + supplier "$UNNAMED$15" + quidu "3815625603A2")) + class "Desktop" + quidu "3814316C02E6" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$16" + quid "381562DA01E9" + class "Graphics" + quidu "38143C890297" + persistence "Transient" + multi FALSE))) + (object Mechanism @10 + logical_models (list unit_reference_list + (object Object "me" + quid "3815659700F7" + collaborators (list link_list + (object Link + quid "381565CB0246" + supplier "$UNNAMED$17" + quidu "381D99010334" + messages (list Messages + (object Message "draw (Graphics&)" + quid "381565CB0247" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "38156728003F")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$17" + quid "381565AF0264" + collaborators (list link_list + (object Link + quid "381568C5033C" + supplier "$UNNAMED$18" + quidu "381D9901033D" + messages (list Messages + (object Message "draw (Graphics&)" + quid "381568C5033D" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "3815788C0362"))) + (object Link + quid "38157FD80001" + supplier "$UNNAMED$19" + quidu "381D9901033F" + messages (list Messages + (object Message "drawWindow (int, int, int, int, char*)" + quid "38157FD80002" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "381565D9025A")))) + class "Window" + quidu "3814313B01B9" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$18" + quid "381568B302AA" + collaborators (list link_list + (object Link + quid "381569090222" + supplier "$UNNAMED$18" + quidu "381568B302AA")) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$19" + quid "38157FCD0037" + class "Graphics" + quidu "38143C890297" + persistence "Transient" + multi FALSE))) + (object Mechanism @11 + logical_models (list unit_reference_list + (object Object "me" + quid "381569D400ED" + collaborators (list link_list + (object Link + quid "381569E003A7" + supplier "$UNNAMED$20" + quidu "381D99010345" + messages (list Messages + (object Message "draw (Graphics&)" + quid "381569E003A8" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3815788C0362")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$20" + quid "381569DD03B7" + collaborators (list link_list + (object Link + quid "38156A0F02BE" + supplier "$UNNAMED$21" + quidu "381D9901034B" + messages (list Messages + (object Message "draw (Graphics&)" + quid "38156A0F02BF" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "38156978000E"))) + (object Link + quid "38156A170035" + supplier "$UNNAMED$20" + quidu "381569DD03B7")) + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$21" + quid "38156A09036A" + class "Component" + quidu "381431500097" + persistence "Transient" + multi FALSE))) + (object Mechanism @12 + logical_models (list unit_reference_list + (object Object "me" + quid "38156AC40297" + collaborators (list link_list + (object Link + quid "38156AE601D7" + supplier "$UNNAMED$22" + quidu "381D99010354" + messages (list Messages + (object Message "draw (Graphics&)" + quid "38156AE601D8" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 0 + quidu "3815781E0300")))) + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$23" + quid "38156AD90098" + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$24" + quid "38156ADB0127" + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$25" + quid "38156AE001BB" + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$22" + quid "38156AE30269" + collaborators (list link_list + (object Link + quid "38156AF7007D" + supplier "$UNNAMED$26" + quidu "381D9901035D" + messages (list Messages + (object Message "drawButton (int, int, int, int, char*)" + quid "38156AF7007E" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 2 + quidu "38156B0202B4"))) + (object Link + quid "3815AB7A02A3" + supplier "$UNNAMED$27" + quidu "381D9901035E" + messages (list Messages + (object Message "getAbsPos (Rectangle*)" + quid "3815AB7A02A4" + frequency "Aperiodic" + synchronization "Simple" + dir "FromClientToSupplier" + sequence "" + ordinal 1 + quidu "3815AB8101A9")))) + class "Button" + quidu "3814315D0371" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$26" + quid "38156AF302A8" + class "Graphics" + quidu "38143C890297" + persistence "Transient" + multi FALSE) + (object Object "$UNNAMED$27" + quid "3815AB7300C2" + class "Panel" + quidu "381431650065" + persistence "Transient" + multi FALSE)))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "38144FE20173" + title "Main" + zoom 88 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Window" @13 + IncludeAttribute TRUE + IncludeOperation TRUE + location (336, 384) + label (object ItemLabel + Parent_View @13 + location (171, 116) + nlines 2 + max_width 391 + justify 0 + label "Window") + quidu "3814313B01B9" + compartment (object Compartment + Parent_View @13 + location (181, 175) + anchor 2 + nlines 13 + max_width 340 + justify 0) + width 568 + height 781 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Component" @14 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1744, 1088) + label (object ItemLabel + Parent_View @14 + location (1560, 817) + nlines 2 + max_width 436 + justify 0 + label "Component") + quidu "381431500097" + compartment (object Compartment + Parent_View @14 + location (1593, 876) + anchor 2 + nlines 11 + max_width 340 + justify 0) + width 632 + height 788 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Panel" @15 + IncludeAttribute TRUE + IncludeOperation TRUE + location (656, 1504) + label (object ItemLabel + Parent_View @15 + location (520, 1394) + nlines 2 + max_width 321 + justify 0 + label "Panel") + quidu "381431650065" + compartment (object Compartment + Parent_View @15 + location (520, 1453) + anchor 2 + nlines 3 + max_width 211 + justify 0) + width 466 + height 328 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Desktop" @16 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1200, 432) + label (object ItemLabel + Parent_View @16 + location (998, 234) + nlines 2 + max_width 481 + justify 0 + label "Desktop") + quidu "3814316C02E6" + compartment (object Compartment + Parent_View @16 + location (1053, 293) + anchor 2 + nlines 7 + max_width 340 + justify 0) + width 698 + height 578 + annotation 8 + autoResize TRUE) + (object ClassView "ParameterizedClass" "List" @17 + IncludeAttribute TRUE + IncludeOperation TRUE + location (208, 1360) + label (object ItemLabel + Parent_View @17 + location (104, 1276) + nlines 2 + max_width 240 + justify 0 + label "List") + quidu "38143A1303DB" + compartment (object Compartment + Parent_View @17 + location (133, 1335) + anchor 2 + nlines 1 + max_width 100 + justify 0) + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "ComponentList" @18 + IncludeAttribute TRUE + IncludeOperation TRUE + location (224, 1696) + label (object ItemLabel + Parent_View @18 + location (120, 1612) + nlines 2 + max_width 240 + justify 0 + label "ComponentList") + quidu "38143A15004F" + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Graphics" @19 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1936, 160) + label (object ItemLabel + Parent_View @19 + location (1783, 55) + nlines 2 + max_width 360 + justify 0 + label "Graphics") + quidu "38143C890297" + compartment (object Compartment + Parent_View @19 + location (1783, 114) + anchor 2 + nlines 2 + max_width 242 + justify 0) + width 522 + height 314 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "NTConsole" @20 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2464, 128) + label (object ItemLabel + Parent_View @20 + location (2359, 43) + nlines 2 + max_width 244 + justify 0 + label "NTConsole") + quidu "38143CF201ED" + compartment (object Compartment + Parent_View @20 + location (2345, 102) + anchor 2 + nlines 2 + max_width 242 + justify 0) + width 355 + height 256 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "EventReader" @21 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2928, 1024) + label (object ItemLabel + Parent_View @21 + location (2811, 940) + nlines 2 + max_width 276 + justify 0 + label "EventReader") + quidu "38143E49022D" + compartment (object Compartment + Parent_View @21 + location (2811, 999) + anchor 2 + nlines 1 + max_width 180 + justify 0) + width 400 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "NTEventReader" @22 + IncludeAttribute TRUE + IncludeOperation TRUE + location (3488, 1280) + label (object ItemLabel + Parent_View @22 + location (3371, 1196) + nlines 2 + max_width 276 + justify 0 + label "NTEventReader") + quidu "38143E7A033C" + compartment (object Compartment + Parent_View @22 + location (3371, 1255) + anchor 2 + nlines 1 + max_width 180 + justify 0) + width 400 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Event" @23 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2896, 1568) + label (object ItemLabel + Parent_View @23 + location (2705, 1341) + nlines 2 + max_width 455 + justify 0 + label "Event") + quidu "38143F7102FB" + compartment (object Compartment + Parent_View @23 + location (2736, 1400) + anchor 2 + nlines 9 + max_width 359 + justify 0) + width 660 + height 660 + annotation 8 + autoResize TRUE) + (object InstantiateView "" @24 + quidu "38143A5F036C" + client @18 + supplier @17 + line_style 0) + (object InheritView "" @25 + quidu "38143CFC0242" + client @20 + supplier @19 + line_style 0) + (object InheritView "" @26 + quidu "38143E7E016B" + client @22 + supplier @21 + line_style 0) + (object UsesView "" @27 + quidu "38143F8802C2" + client @21 + supplier @23 + line_style 0) + (object ClassView "InstantiatedClass" "WindowList" @28 + IncludeAttribute TRUE + IncludeOperation TRUE + location (224, 1040) + label (object ItemLabel + Parent_View @28 + location (120, 956) + nlines 2 + max_width 240 + justify 0 + label "WindowList") + quidu "3814565001A2" + annotation 8 + autoResize TRUE) + (object UsesView "" @29 + quidu "381456F70256" + client @28 + supplier @13 + line_style 0) + (object ClassView "Class" "CompositeComponent" @30 + IncludeAttribute TRUE + IncludeOperation TRUE + location (592, 2144) + label (object ItemLabel + Parent_View @30 + location (384, 1946) + nlines 2 + max_width 495 + justify 0 + label "CompositeComponent") + quidu "38145CEF0145" + compartment (object Compartment + Parent_View @30 + location (384, 2005) + anchor 2 + nlines 7 + max_width 344 + justify 0) + width 718 + height 578 + annotation 8 + autoResize TRUE) + (object InheritView "" @31 + quidu "38145D0803D6" + client @15 + supplier @30 + line_style 0) + (object ClassView "Class" "BeepingBH" @32 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1600, 2432) + label (object ItemLabel + Parent_View @32 + location (1468, 2348) + nlines 2 + max_width 311 + justify 0 + label "BeepingBH") + quidu "3814328100F0" + compartment (object Compartment + Parent_View @32 + location (1468, 2407) + anchor 2 + nlines 1 + max_width 203 + justify 0) + width 452 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Rectangle" @33 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2256, 1824) + label (object ItemLabel + Parent_View @33 + location (2129, 1583) + nlines 2 + max_width 296 + justify 0 + label "Rectangle") + quidu "3815B1950052" + compartment (object Compartment + Parent_View @33 + location (2129, 1642) + anchor 2 + nlines 9 + max_width 191 + justify 0) + width 430 + height 702 + annotation 8 + autoResize TRUE) + (object InheritView "" @34 + quidu "381431A000F6" + client @30 + supplier @14 + line_style 0) + (object HasView "active" @35 + label (object ItemLabel + Parent_View @35 + location (716, 410) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "active") + quidu "3814324200B3" + client @16 + supplier @13 + line_style 0) + (object HasView "wList" @36 + label (object ItemLabel + Parent_View @36 + location (693, 755) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "wList") + quidu "3814566E001E" + client @16 + supplier @28 + line_style 0) + (object ClassView "Class" "Button" @37 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1072, 1104) + label (object ItemLabel + Parent_View @37 + location (896, 919) + nlines 2 + max_width 416 + justify 0 + label "Button") + quidu "3814315D0371" + compartment (object Compartment + Parent_View @37 + location (919, 978) + anchor 2 + nlines 8 + max_width 340 + justify 0) + width 604 + height 540 + annotation 8 + autoResize TRUE) + (object InheritView "" @38 + quidu "381431A40323" + client @37 + supplier @14 + line_style 0) + (object UsesView "" @39 + quidu "3815C3C50260" + client @37 + supplier @15 + line_style 0) + (object ClassView "Class" "BH" @40 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1328, 2144) + label (object ItemLabel + Parent_View @40 + location (1196, 2060) + nlines 2 + max_width 311 + justify 0 + label "BH") + quidu "3818189E000C" + compartment (object Compartment + Parent_View @40 + location (1196, 2119) + anchor 2 + nlines 1 + max_width 203 + justify 0) + width 452 + annotation 8 + autoResize TRUE) + (object InheritView "" @41 + quidu "38181932031C" + client @32 + supplier @40 + line_style 0) + (object ClassView "Class" "ExitBH" @42 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1056, 2416) + label (object ItemLabel + Parent_View @42 + location (924, 2332) + nlines 2 + max_width 311 + justify 0 + label "ExitBH") + quidu "381825230119" + compartment (object Compartment + Parent_View @42 + location (924, 2391) + anchor 2 + nlines 1 + max_width 203 + justify 0) + width 452 + annotation 8 + autoResize TRUE) + (object InheritView "" @43 + quidu "381825310137" + client @42 + supplier @40 + line_style 0) + (object UsesView "" @44 + quidu "3814812B01A7" + client @14 + supplier @23 + line_style 0) + (object UsesView "" @45 + quidu "3815B26E0307" + client @14 + supplier @33 + line_style 0) + (object UsesView "" @46 + quidu "38182AC503A7" + client @14 + supplier @19 + line_style 0) + (object InstantiateView "" @47 + quidu "38182C6C007A" + client @28 + supplier @17 + line_style 0) + (object ClassView "Class" "TopDown" @48 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2432, 544) + label (object ItemLabel + Parent_View @48 + location (2245, 340) + nlines 2 + max_width 445 + justify 0 + label "TopDown") + quidu "381D5F3B0332" + compartment (object Compartment + Parent_View @48 + location (2282, 399) + anchor 2 + nlines 8 + max_width 340 + justify 0) + width 646 + height 596 + annotation 8 + autoResize TRUE) + (object ClassView "InstantiatedClass" "MenuList" @49 + IncludeAttribute TRUE + IncludeOperation TRUE + location (3328, 768) + label (object ItemLabel + Parent_View @49 + location (3224, 684) + nlines 2 + max_width 240 + justify 0 + label "MenuList") + quidu "381D605700B0" + annotation 8 + autoResize TRUE) + (object UsesView "" @50 + quidu "3815726802A3" + client @13 + supplier @19 + vertices (list Points + (613, 167) + (1228, 14) + (1697, 120)) + line_style 0) + (object ClassView "Class" "MenuItem" @51 + IncludeAttribute TRUE + IncludeOperation TRUE + location (3280, 288) + label (object ItemLabel + Parent_View @51 + location (3078, 112) + nlines 2 + max_width 481 + justify 0 + label "MenuItem") + quidu "381D603103A4" + compartment (object Compartment + Parent_View @51 + location (3078, 171) + anchor 2 + nlines 6 + max_width 340 + justify 0) + width 698 + height 516 + annotation 8 + autoResize TRUE) + (object HasView "" @52 + quidu "381D688102DC" + client @48 + supplier @49 + line_style 0) + (object UsesView "" @53 + quidu "381D691F02E3" + client @49 + supplier @51 + line_style 0) + (object UsesView "" @54 + quidu "381D6A020308" + client @48 + supplier @51 + line_style 0) + (object ClassView "Class" "TextField" @55 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1696, 1824) + label (object ItemLabel + Parent_View @55 + location (1494, 1670) + nlines 2 + max_width 481 + justify 0 + label "TextField") + quidu "381D6A9700B3" + compartment (object Compartment + Parent_View @55 + location (1549, 1729) + anchor 2 + nlines 5 + max_width 340 + justify 0) + width 698 + height 454 + annotation 8 + autoResize TRUE) + (object InheritView "" @56 + quidu "381D6AB30077" + client @55 + supplier @14 + line_style 0) + (object HasView "" @57 + quidu "381819080307" + client @37 + supplier @40 + vertices (list Points + (1063, 1343) + (1036, 1725) + (1225, 2030)) + line_style 0) + (object UsesView "" @58 + quidu "381D6AB80165" + client @55 + supplier @15 + vertices (list Points + (1457, 1670) + (1246, 1501) + (855, 1504)) + line_style 0) + (object UsesView "" @59 + quidu "3814573E012C" + client @18 + supplier @14 + vertices (list Points + (374, 1710) + (863, 1757) + (1586, 1291)) + line_style 0) + (object UsesView "" @60 + quidu "38143C8E0077" + client @16 + supplier @19 + line_style 0) + (object UsesView "" @61 + quidu "38143E6D00BC" + client @16 + supplier @21 + line_style 0) + (object ClassView "Class" "MouseEvent" @62 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2640, 2176) + label (object ItemLabel + Parent_View @62 + location (2536, 2092) + nlines 2 + max_width 240 + justify 0 + label "MouseEvent") + quidu "38143FB4031F" + annotation 8 + autoResize TRUE) + (object InheritView "" @63 + quidu "38143FBF016C" + client @62 + supplier @23 + line_style 0) + (object ClassView "Class" "KeyEvent" @64 + IncludeAttribute TRUE + IncludeOperation TRUE + location (3168, 2160) + label (object ItemLabel + Parent_View @64 + location (3064, 2076) + nlines 2 + max_width 240 + justify 0 + label "KeyEvent") + quidu "38143FCB026E" + annotation 8 + autoResize TRUE) + (object InheritView "" @65 + quidu "38143FE700C0" + client @64 + supplier @23 + line_style 0) + (object HasView "cList" @66 + label (object ItemLabel + Parent_View @66 + location (344, 1829) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "cList") + quidu "38143B4A02B6" + client @30 + supplier @18 + line_style 0) + (object HasView "active" @67 + label (object ItemLabel + Parent_View @67 + location (1278, 1723) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "active") + quidu "381476CF0276" + client @30 + supplier @14 + vertices (list Points + (893, 1939) + (1277, 1724) + (1602, 1422)) + line_style 0) + (object InstantiateView "" @68 + quidu "381D6A240357" + client @49 + supplier @17 + vertices (list Points + (3172, 781) + (2204, 877) + (1679, 671) + (781, 781) + (653, 877) + (621, 1228) + (382, 1305)) + line_style 0) + (object HasView "panel" @69 + label (object ItemLabel + Parent_View @69 + location (499, 1025) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "panel") + quidu "381437DA0184" + client @13 + supplier @15 + line_style 0) + (object HasView "myTD" @70 + label (object ItemLabel + Parent_View @70 + location (1413, 126) + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "myTD") + quidu "381D64F70239" + client @13 + supplier @48 + vertices (list Points + (620, 194) + (1246, 64) + (2177, 413)) + line_style 0))) + (object InteractionDiagram "CreateDesktop" + mechanism_ref @1 + quid "381453A401A8" + title "CreateDesktop" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @71 + location (448, 224) + label (object ItemLabel + Parent_View @71 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "381453CF0024" + width 300 + height 385 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @72 + location (448, 400) + InterObjView @71 + height 120 + y_coord 60 + Nested FALSE)) + (object InterObjView "$UNNAMED$0" @73 + location (848, 224) + quidu "381453D40049" + width 300 + height 385 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @74 + location (848, 400) + InterObjView @73 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @75 + location (0, 400) + label (object SegLabel @76 + Parent_View @75 + location (648, 356) + quidu "381453D700E4" + anchor_loc 1 + nlines 1 + max_width 144 + justify 0 + label "Desktop" + pctDist 0.500000 + height 45 + orientation 0) + client @71 + supplier @73 + Focus_Src @72 + Focus_Entry @74 + origin (464, 400) + terminus (832, 400) + ordinal 0))) + (object InteractionDiagram "AddWindow" + mechanism_ref @2 + quid "3814545A0236" + title "AddWindow" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @77 + location (448, 224) + label (object ItemLabel + Parent_View @77 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "3814546E00EB" + width 300 + height 445 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @78 + location (448, 368) + InterObjView @77 + height 212 + y_coord 152 + Nested FALSE)) + (object InterObjView "$UNNAMED$1" @79 + location (880, 224) + quidu "381454760132" + width 300 + height 445 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @80 + location (880, 368) + InterObjView @79 + height 152 + y_coord 92 + Nested FALSE)) + (object InterObjView "wList" @81 + location (1216, 224) + label (object ItemLabel + Parent_View @81 + location (1216, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "wList") + quidu "381457BC0155" + width 300 + height 445 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @82 + location (1216, 400) + InterObjView @81 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @83 + location (0, 368) + label (object SegLabel @84 + Parent_View @83 + location (664, 324) + quidu "38145497002C" + anchor_loc 1 + nlines 1 + max_width 75 + justify 0 + label "add (Window*)" + pctDist 0.500000 + height 45 + orientation 0) + client @77 + supplier @79 + Focus_Src @78 + Focus_Entry @80 + origin (464, 368) + terminus (864, 368) + ordinal 0) + (object InterMessView "" @85 + location (0, 400) + label (object SegLabel @86 + Parent_View @85 + location (1048, 356) + quidu "381457C00206" + anchor_loc 1 + nlines 1 + max_width 122 + justify 0 + label "add (T)" + pctDist 0.500000 + height 45 + orientation 0) + client @79 + supplier @81 + Focus_Src @80 + Focus_Entry @82 + origin (896, 400) + terminus (1200, 400) + ordinal 1))) + (object InteractionDiagram "CreateWindow" + mechanism_ref @3 + quid "381454E000D0" + title "CreateWindow" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @87 + location (256, 224) + label (object ItemLabel + Parent_View @87 + location (256, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "381454EE0199" + width 300 + height 477 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @88 + location (256, 384) + InterObjView @87 + height 228 + y_coord 168 + Nested FALSE)) + (object InterObjView "$UNNAMED$2" @89 + location (912, 224) + quidu "381454F603CB" + width 300 + height 477 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @90 + location (912, 384) + InterObjView @89 + height 168 + y_coord 108 + Nested FALSE)) + (object InterObjView "$UNNAMED$3" @91 + location (1568, 224) + quidu "381454FB01F2" + width 300 + height 477 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @92 + location (1568, 432) + InterObjView @91 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @93 + location (0, 384) + label (object SegLabel @94 + Parent_View @93 + location (584, 343) + quidu "381454FE0265" + anchor_loc 1 + nlines 1 + max_width 502 + justify 0 + label "Window (int, int, int, int, char*)" + pctDist 0.500000 + height 42 + orientation 0) + client @87 + supplier @89 + Focus_Src @88 + Focus_Entry @90 + origin (272, 384) + terminus (896, 384) + ordinal 0) + (object InterMessView "" @95 + location (0, 432) + label (object SegLabel @96 + Parent_View @95 + location (1240, 388) + quidu "381455770363" + anchor_loc 1 + nlines 1 + max_width 303 + justify 0 + label "Panel (int, int, int, int)" + pctDist 0.500000 + height 45 + orientation 0) + client @89 + supplier @91 + Focus_Src @90 + Focus_Entry @92 + origin (928, 432) + terminus (1552, 432) + ordinal 1) + (object NoteView @97 + location (1872, 544) + label (object ItemLabel + Parent_View @97 + location (1714, 438) + nlines 4 + max_width 340 + label "When a new window is created, a new panel is created.") + width 400 + height 225))) + (object InteractionDiagram "addComponent" + mechanism_ref @4 + quid "3814592400F9" + title "addComponent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @98 + location (448, 224) + label (object ItemLabel + Parent_View @98 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "3814593403AF" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @99 + location (448, 400) + InterObjView @98 + height 436 + y_coord 376 + Nested FALSE)) + (object InterObjView "$UNNAMED$4" @100 + location (960, 224) + quidu "3814594B0022" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @101 + location (960, 400) + InterObjView @100 + height 376 + y_coord 316 + Nested FALSE)) + (object InterObjView "cList" @102 + location (1296, 224) + label (object ItemLabel + Parent_View @102 + location (1296, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "cList") + quidu "3814599A03E7" + width 300 + height 701 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @103 + location (1296, 656) + InterObjView @102 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @104 + location (0, 400) + label (object SegLabel @105 + Parent_View @104 + location (704, 356) + quidu "381459700366" + anchor_loc 1 + nlines 1 + max_width 308 + justify 0 + label "add (Component*)" + pctDist 0.500000 + height 45 + orientation 0) + client @98 + supplier @100 + Focus_Src @99 + Focus_Entry @101 + origin (464, 400) + terminus (944, 400) + ordinal 0) + (object InterMessView "" @106 + location (0, 656) + label (object SegLabel @107 + Parent_View @106 + location (1128, 612) + quidu "381459AB0017" + anchor_loc 1 + nlines 1 + max_width 122 + justify 0 + label "add (T)" + pctDist 0.500000 + height 45 + orientation 0) + client @100 + supplier @102 + Focus_Src @101 + Focus_Entry @103 + origin (976, 656) + terminus (1280, 656) + ordinal 2) + (object SelfMessView "" @108 + location (0, 496) + label (object SegLabel @109 + Parent_View @108 + location (1051, 452) + quidu "3815ADB3028E" + anchor_loc 1 + nlines 1 + max_width 406 + justify 0 + label "setParent (Component*)" + pctDist 0.500000 + height 45 + orientation 0) + client @100 + supplier @100 + Focus_Src @101 + origin (976, 496) + terminus (1126, 496) + ordinal 1) + (object NoteView @110 + location (720, 608) + label (object ItemLabel + Parent_View @110 + location (565, 511) + nlines 4 + max_width 334 + label "Every component knows the parents position.") + width 394 + height 207))) + (object InteractionDiagram "CreateButton" + mechanism_ref @5 + quid "38145BF800FA" + title "CreateButton" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @111 + location (448, 224) + label (object ItemLabel + Parent_View @111 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "38145C0300A5" + width 300 + height 321 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @112 + location (448, 336) + InterObjView @111 + height 120 + y_coord 60 + Nested FALSE)) + (object InterObjView "$UNNAMED$5" @113 + location (1024, 224) + quidu "38145C05030B" + width 300 + height 321 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @114 + location (1024, 336) + InterObjView @113 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @115 + location (0, 336) + label (object SegLabel @116 + Parent_View @115 + location (736, 292) + quidu "38145C0F00CC" + anchor_loc 1 + nlines 1 + max_width 472 + justify 0 + label "Button (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + client @111 + supplier @113 + Focus_Src @112 + Focus_Entry @114 + origin (464, 336) + terminus (1008, 336) + ordinal 0))) + (object InteractionDiagram "handleMouseEvent" + mechanism_ref @6 + quid "38146C560344" + title "handleMouseEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 79 + items (list diagram_item_list + (object InterObjView "$UNNAMED$6" @117 + location (784, 224) + quidu "38146FAF02F6" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @118 + location (784, 496) + InterObjView @117 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$7" @119 + location (480, 224) + quidu "38147002006A" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @120 + location (480, 432) + InterObjView @119 + height 1124 + y_coord 1064 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @121 + location (480, 1776) + InterObjView @119 + height 120 + y_coord 60 + Nested FALSE)) + (object InterObjView "active" @122 + location (1488, 224) + label (object ItemLabel + Parent_View @122 + location (1488, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "active") + quidu "381470DD008D" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @123 + location (1488, 672) + InterObjView @122 + height 468 + y_coord 408 + Nested FALSE) + Focus_Of_Control (object Focus_Of_Control "" @124 + location (1488, 1376) + InterObjView @122 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "panel" @125 + location (1984, 224) + label (object ItemLabel + Parent_View @125 + location (1984, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "panel") + quidu "381472EB0116" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @126 + location (1984, 752) + InterObjView @125 + height 328 + y_coord 268 + Nested FALSE)) + (object InterObjView "$UNNAMED$9" @127 + location (2304, 224) + quidu "381474CD02F9" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @128 + location (2304, 960) + InterObjView @127 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$8" @129 + location (1120, 224) + quidu "38181F6D03E7" + width 300 + height 1761 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @130 + location (1120, 1280) + InterObjView @129 + height 216 + y_coord 156 + Nested FALSE)) + (object SelfMessView "" @131 + location (0, 832) + label (object SegLabel @132 + Parent_View @131 + location (2075, 788) + quidu "381474B50114" + anchor_loc 1 + nlines 1 + max_width 266 + justify 0 + label "findComponent (Event*)" + pctDist 0.500000 + height 45 + orientation 0) + client @125 + supplier @125 + Focus_Src @126 + origin (2000, 832) + terminus (2150, 832) + ordinal 3) + (object InterMessView "" @133 + location (0, 672) + label (object SegLabel @134 + Parent_View @133 + location (946, 629) + quidu "381470E60113" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.461538 + height 44 + orientation 0) + client @119 + supplier @122 + Focus_Src @120 + Focus_Entry @123 + origin (496, 672) + terminus (1472, 672) + ordinal 1) + (object InterMessView "" @135 + location (0, 752) + label (object SegLabel @136 + Parent_View @135 + location (1734, 708) + quidu "381472EF034D" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.496711 + height 45 + orientation 0) + client @122 + supplier @125 + Focus_Src @123 + Focus_Entry @126 + origin (1504, 752) + terminus (1968, 752) + ordinal 2) + (object InterMessView "" @137 + location (0, 960) + label (object SegLabel @138 + Parent_View @137 + location (2144, 916) + quidu "381474D202BC" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + client @125 + supplier @127 + Focus_Src @126 + Focus_Entry @128 + origin (2000, 960) + terminus (2288, 960) + ordinal 4) + (object InterMessView "" @139 + location (0, 496) + label (object SegLabel @140 + Parent_View @139 + location (632, 452) + quidu "3816B487013C" + anchor_loc 1 + nlines 1 + max_width 195 + justify 0 + label "getEvent ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @119 + supplier @117 + Focus_Src @120 + Focus_Entry @118 + origin (496, 496) + terminus (768, 496) + ordinal 0) + (object SelfMessView "" @141 + location (0, 1776) + label (object SegLabel @142 + Parent_View @141 + location (614, 1718) + quidu "38181ED9027C" + anchor_loc 1 + nlines 1 + max_width 293 + justify 0 + label "draw (Graphics&)" + pctDist 0.793333 + height 59 + orientation 0) + client @119 + supplier @119 + Focus_Src @121 + origin (496, 1776) + terminus (646, 1776) + ordinal 7) + (object InterMessView "" @143 + location (0, 1280) + label (object SegLabel @144 + Parent_View @143 + location (800, 1236) + quidu "38181FA70283" + anchor_loc 1 + nlines 1 + max_width 485 + justify 0 + label "Find right x&y in windows-list" + pctDist 0.500000 + height 45 + orientation 0) + client @119 + supplier @129 + Focus_Src @120 + Focus_Entry @130 + origin (496, 1280) + terminus (1104, 1280) + ordinal 5) + (object InterMessView "" @145 + location (0, 1376) + label (object SegLabel @146 + Parent_View @145 + location (1304, 1332) + quidu "3818204402C4" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + client @129 + supplier @122 + Focus_Src @130 + Focus_Entry @124 + origin (1136, 1376) + terminus (1472, 1376) + ordinal 6))) + (object InteractionDiagram "Button handleEvent" + mechanism_ref @7 + quid "381478750237" + title "Button handleEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "$UNNAMED$10" @147 + location (448, 224) + quidu "3814789A00DC" + width 300 + height 493 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @148 + location (448, 368) + InterObjView @147 + height 260 + y_coord 200 + Nested FALSE)) + (object InterObjView "$UNNAMED$11" @149 + location (784, 224) + quidu "3814789D019E" + width 300 + height 493 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @150 + location (784, 368) + InterObjView @149 + height 200 + y_coord 140 + Nested FALSE)) + (object InterObjView "$UNNAMED$12" @151 + location (1120, 224) + quidu "381478B602DB" + width 300 + height 493 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @152 + location (1120, 448) + InterObjView @151 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @153 + location (0, 368) + label (object SegLabel @154 + Parent_View @153 + location (616, 324) + quidu "381478A10033" + anchor_loc 1 + nlines 1 + max_width 337 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + client @147 + supplier @149 + Focus_Src @148 + Focus_Entry @150 + origin (464, 368) + terminus (768, 368) + ordinal 0) + (object InterMessView "" @155 + location (0, 448) + label (object SegLabel @156 + Parent_View @155 + location (952, 404) + quidu "381478E10324" + anchor_loc 1 + nlines 1 + max_width 222 + justify 0 + label "doOnClick ( )" + pctDist 0.500000 + height 45 + orientation 0) + client @149 + supplier @151 + Focus_Src @150 + Focus_Entry @152 + origin (800, 448) + terminus (1104, 448) + ordinal 1))) + (object InteractionDiagram "Panel handleEvent" + mechanism_ref @8 + quid "3814792A00F7" + title "Panel handleEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "$UNNAMED$13" @157 + location (448, 224) + quidu "3814795900CC" + width 300 + height 781 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @158 + location (448, 384) + InterObjView @157 + height 532 + y_coord 472 + Nested FALSE)) + (object InterObjView "$UNNAMED$14" @159 + location (848, 224) + quidu "3814795B0198" + width 300 + height 781 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @160 + location (848, 384) + InterObjView @159 + height 472 + y_coord 412 + Nested FALSE)) + (object InterObjView "active" @161 + location (1456, 224) + label (object ItemLabel + Parent_View @161 + location (1456, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "active") + quidu "381479D90080" + width 300 + height 781 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @162 + location (1456, 736) + InterObjView @161 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @163 + location (0, 384) + label (object SegLabel @164 + Parent_View @163 + location (648, 340) + quidu "3814795F0285" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + client @157 + supplier @159 + Focus_Src @158 + Focus_Entry @160 + origin (464, 384) + terminus (832, 384) + ordinal 0) + (object InterMessView "" @165 + location (0, 736) + label (object SegLabel @166 + Parent_View @165 + location (1152, 692) + quidu "381479E20016" + anchor_loc 1 + nlines 1 + max_width 334 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + client @159 + supplier @161 + Focus_Src @160 + Focus_Entry @162 + origin (864, 736) + terminus (1440, 736) + ordinal 2) + (object SelfMessView "" @167 + location (0, 480) + label (object SegLabel @168 + Parent_View @167 + location (1066, 452) + quidu "38182302010B" + anchor_loc 1 + nlines 1 + max_width 363 + justify 0 + label "Find right Component" + pctDist 1.353333 + height 29 + orientation 0) + client @159 + supplier @159 + Focus_Src @160 + origin (864, 480) + terminus (1014, 480) + ordinal 1))) + (object ObjectDiagram "CreateDesktop" + mechanism_ref @1 + quid "38147A70010A" + title "CreateDesktop" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @169 + location (352, 384) + label (object ItemLabel + Parent_View @169 + location (248, 300) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "381453CF0024" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$0" @170 + location (896, 384) + quidu "381453D40049" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @171 + quidu "381453D700E3" + client @169 + supplier @170 + line_style 0) + (object MessView "" @172 + location (612, 340) + label (object SegLabel @173 + Parent_View @172 + location (612, 296) + quidu "381453D700E4" + anchor_loc 1 + nlines 1 + max_width 184 + justify 0 + label "Desktop" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @171 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (552, 340) + terminus (672, 340)))) + (object ObjectDiagram "AddWindow" + mechanism_ref @2 + quid "38147AA70131" + title "AddWindow" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @174 + location (352, 384) + label (object ItemLabel + Parent_View @174 + location (248, 300) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "3814546E00EB" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$1" @175 + location (896, 384) + quidu "381454760132" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "wList" @176 + location (352, 928) + label (object ItemLabel + Parent_View @176 + location (248, 844) + nlines 2 + max_width 240 + justify 0 + label "wList") + quidu "381457BC0155" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @177 + quidu "38145497002B" + client @174 + supplier @175 + line_style 0) + (object MessView "" @178 + location (612, 340) + label (object SegLabel @179 + Parent_View @178 + location (612, 296) + quidu "38145497002C" + anchor_loc 1 + nlines 1 + max_width 294 + justify 0 + label "add (Window*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @177 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (552, 340) + terminus (672, 340)) + (object LinkView "" @180 + quidu "381457C00205" + client @175 + supplier @176 + line_style 0) + (object MessView "" @181 + location (664, 680) + label (object SegLabel @182 + Parent_View @181 + location (696, 711) + quidu "381457C00206" + anchor_loc 1 + nlines 1 + max_width 162 + justify 0 + label "add (T)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @180 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (705, 638) + terminus (623, 722)))) + (object ObjectDiagram "CreateWindow" + mechanism_ref @3 + quid "38147B2700C7" + title "CreateWindow" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @183 + location (352, 384) + label (object ItemLabel + Parent_View @183 + location (248, 300) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "381454EE0199" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$2" @184 + location (896, 384) + quidu "381454F603CB" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$3" @185 + location (352, 928) + quidu "381454FB01F2" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @186 + quidu "381454FE0264" + client @183 + supplier @184 + line_style 0) + (object MessView "" @187 + location (612, 340) + label (object SegLabel @188 + Parent_View @187 + location (612, 296) + quidu "381454FE0265" + anchor_loc 1 + nlines 1 + max_width 540 + justify 0 + label "Window (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @186 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (552, 340) + terminus (672, 340)) + (object LinkView "" @189 + quidu "381455770362" + client @184 + supplier @185 + line_style 0) + (object MessView "" @190 + location (664, 680) + label (object SegLabel @191 + Parent_View @190 + location (696, 711) + quidu "381455770363" + anchor_loc 1 + nlines 1 + max_width 394 + justify 0 + label "Panel (int, int, int, int)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @189 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (705, 638) + terminus (623, 722)))) + (object ObjectDiagram "addComponent" + mechanism_ref @4 + quid "38147B3800CB" + title "addComponent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @192 + location (352, 384) + label (object ItemLabel + Parent_View @192 + location (248, 300) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "3814593403AF" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$4" @193 + location (896, 384) + quidu "3814594B0022" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "cList" @194 + location (352, 928) + label (object ItemLabel + Parent_View @194 + location (235, 844) + nlines 2 + max_width 276 + justify 0 + label "cList") + quidu "3814599A03E7" + width 400 + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkSelfView "" @195 + location (896, 104) + quidu "3815ADB3028D" + client @193 + supplier @193 + line_style 0) + (object MessView "" @196 + location (896, 60) + label (object SegLabel @197 + Parent_View @196 + location (896, 16) + quidu "3815ADB3028E" + anchor_loc 1 + nlines 1 + max_width 459 + justify 0 + label "setParent (Component*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @195 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (836, 60) + terminus (956, 60)) + (object LinkView "" @198 + quidu "381459700365" + client @192 + supplier @193 + line_style 0) + (object MessView "" @199 + location (612, 340) + label (object SegLabel @200 + Parent_View @199 + location (612, 296) + quidu "381459700366" + anchor_loc 1 + nlines 1 + max_width 359 + justify 0 + label "add (Component*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @198 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (552, 340) + terminus (672, 340)) + (object LinkView "" @201 + quidu "381459AB0016" + client @193 + supplier @194 + line_style 0) + (object MessView "" @202 + location (671, 679) + label (object SegLabel @203 + Parent_View @202 + location (704, 710) + quidu "381459AB0017" + anchor_loc 1 + nlines 1 + max_width 162 + justify 0 + label "add (T)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @201 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (712, 636) + terminus (630, 722)))) + (object ObjectDiagram "CreateButton" + mechanism_ref @5 + quid "38147B5D00E2" + title "CreateButton" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "me" @204 + location (352, 384) + label (object ItemLabel + Parent_View @204 + location (248, 300) + nlines 2 + max_width 240 + justify 0 + label "me") + quidu "38145C0300A5" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$5" @205 + location (896, 384) + quidu "38145C05030B" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @206 + quidu "38145C0F00CB" + client @204 + supplier @205 + line_style 0) + (object MessView "" @207 + location (612, 340) + label (object SegLabel @208 + Parent_View @207 + location (612, 296) + quidu "38145C0F00CC" + anchor_loc 1 + nlines 1 + max_width 512 + justify 0 + label "Button (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @206 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (552, 340) + terminus (672, 340)))) + (object ObjectDiagram "handleMouseEvent" + mechanism_ref @6 + quid "38147B7F0145" + title "handleMouseEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 801 + origin_y 0 + items (list diagram_item_list + (object ObjectView "$UNNAMED$6" @209 + location (992, 176) + quidu "38146FAF02F6" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$7" @210 + location (992, 1008) + quidu "38147002006A" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "active" @211 + location (2080, 1024) + label (object ItemLabel + Parent_View @211 + location (1976, 940) + nlines 2 + max_width 240 + justify 0 + label "active") + quidu "381470DD008D" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "panel" @212 + location (2064, 1568) + label (object ItemLabel + Parent_View @212 + location (1960, 1484) + nlines 2 + max_width 240 + justify 0 + label "panel") + quidu "381472EB0116" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$9" @213 + location (1104, 1568) + quidu "381474CD02F9" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkSelfView "" @214 + location (992, 728) + quidu "3814767300A7" + client @210 + supplier @210 + line_style 0) + (object LinkSelfView "" @215 + location (2064, 1288) + quidu "381474040033" + client @212 + supplier @212 + line_style 0) + (object MessView "" @216 + location (2064, 1244) + label (object SegLabel @217 + Parent_View @216 + location (2064, 1200) + quidu "381474B50114" + anchor_loc 1 + nlines 1 + max_width 450 + justify 0 + label "findComponent (Event*)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @215 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (2004, 1244) + terminus (2124, 1244)) + (object MessView "" @218 + location (992, 684) + label (object SegLabel @219 + Parent_View @218 + location (992, 640) + quidu "38181ED9027C" + anchor_loc 1 + nlines 1 + max_width 340 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @214 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (932, 684) + terminus (1052, 684)) + (object ObjectView "$UNNAMED$8" @220 + location (2080, 192) + quidu "38181F6D03E7" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @221 + quidu "381470E60112" + client @210 + supplier @211 + line_style 0) + (object MessView "" @222 + location (1525, 972) + label (object SegLabel @223 + Parent_View @222 + location (1526, 928) + quidu "381470E60113" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @221 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1465, 971) + terminus (1585, 973)) + (object LinkView "" @224 + quidu "3816B487013B" + client @210 + supplier @209 + line_style 0) + (object MessView "" @225 + location (948, 596) + label (object SegLabel @226 + Parent_View @225 + location (904, 596) + quidu "3816B487013C" + anchor_loc 1 + nlines 1 + max_width 231 + justify 0 + label "getEvent ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @224 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (948, 655) + terminus (948, 537)) + (object LinkView "" @227 + quidu "38181FA70282" + client @210 + supplier @220 + line_style 0) + (object MessView "" @228 + location (1528, 551) + label (object SegLabel @229 + Parent_View @228 + location (1502, 516) + quidu "38181FA70283" + anchor_loc 1 + nlines 1 + max_width 875 + justify 0 + label "Find right x&y in windows-list" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @227 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1480, 586) + terminus (1576, 516)) + (object LinkView "" @230 + quidu "381472EF034C" + client @211 + supplier @212 + line_style 0) + (object MessView "" @231 + location (2117, 1302) + label (object SegLabel @232 + Parent_View @231 + location (2162, 1303) + quidu "381472EF034D" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @230 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (2118, 1242) + terminus (2116, 1362)) + (object LinkView "" @233 + quidu "381474D202BB" + client @212 + supplier @213 + line_style 0) + (object MessView "" @234 + location (1572, 1613) + label (object SegLabel @235 + Parent_View @234 + location (1572, 1658) + quidu "381474D202BC" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @233 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1631, 1613) + terminus (1513, 1613)) + (object LinkView "" @236 + quidu "381820160200" + client @220 + supplier @211 + line_style 0) + (object MessView "" @237 + location (2140, 615) + label (object SegLabel @238 + Parent_View @237 + location (2185, 615) + quidu "3818204402C4" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @236 + pctDist 0.505660 + height 60 + orientation 0 + dir 1 + origin (2140, 555) + terminus (2140, 675)))) + (object ObjectDiagram "Button handleEvent" + mechanism_ref @7 + quid "38147C840169" + title "Button handleEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "$UNNAMED$10" @239 + location (352, 384) + quidu "3814789A00DC" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$11" @240 + location (1120, 384) + quidu "3814789D019E" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$12" @241 + location (352, 928) + quidu "381478B602DB" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkView "" @242 + quidu "381478A10032" + client @239 + supplier @240 + line_style 0) + (object MessView "" @243 + location (724, 340) + label (object SegLabel @244 + Parent_View @243 + location (724, 296) + quidu "381478A10033" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @242 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (664, 340) + terminus (784, 340)) + (object LinkView "" @245 + quidu "381478E10323" + client @240 + supplier @241 + line_style 0) + (object MessView "" @246 + location (782, 679) + label (object SegLabel @247 + Parent_View @246 + location (809, 715) + quidu "381478E10324" + anchor_loc 1 + nlines 1 + max_width 262 + justify 0 + label "doOnClick ( )" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @245 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (830, 644) + terminus (734, 714)))) + (object ObjectDiagram "Panel handleEvent" + mechanism_ref @8 + quid "38147CAE02F0" + title "Panel handleEvent" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ObjectView "$UNNAMED$13" @248 + location (352, 384) + quidu "3814795900CC" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "$UNNAMED$14" @249 + location (1168, 384) + quidu "3814795B0198" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object ObjectView "active" @250 + location (352, 928) + label (object ItemLabel + Parent_View @250 + location (248, 844) + nlines 2 + max_width 240 + justify 0 + label "active") + quidu "381479D90080" + annotation 4 + autoResize TRUE + subobjects 0 + x_offset 0.000000 + y_offset 0.000000) + (object LinkSelfView "" @251 + location (1168, 104) + quidu "381479C3038C" + client @249 + supplier @249 + line_style 0) + (object MessView "" @252 + location (1168, 60) + label (object SegLabel @253 + Parent_View @252 + location (1168, 16) + quidu "38182302010B" + anchor_loc 1 + nlines 1 + max_width 703 + justify 0 + label "Find right Component" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @251 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (1108, 60) + terminus (1228, 60)) + (object LinkView "" @254 + quidu "3814795F0284" + client @248 + supplier @249 + line_style 0) + (object MessView "" @255 + location (748, 340) + label (object SegLabel @256 + Parent_View @255 + location (748, 296) + quidu "3814795F0285" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @254 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (688, 340) + terminus (808, 340)) + (object LinkView "" @257 + quidu "381479E20015" + client @249 + supplier @250 + line_style 0) + (object MessView "" @258 + location (808, 677) + label (object SegLabel @259 + Parent_View @258 + location (833, 714) + quidu "381479E20016" + anchor_loc 1 + nlines 1 + max_width 497 + justify 0 + label "handleMouseEvent (Event)" + pctDist 0.500000 + height 45 + orientation 0) + object_arc @257 + pctDist 0.500000 + height 45 + orientation 0 + dir 1 + origin (857, 644) + terminus (759, 710)))) + (object InteractionDiagram "draw desktop" + mechanism_ref @9 + quid "3815623702CB" + title "draw desktop" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @260 + location (448, 224) + label (object ItemLabel + Parent_View @260 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "38156250026D" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @261 + location (448, 384) + InterObjView @260 + height 324 + y_coord 264 + Nested FALSE)) + (object InterObjView "$UNNAMED$15" @262 + location (928, 224) + quidu "3815625603A2" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @263 + location (928, 384) + InterObjView @262 + height 264 + y_coord 204 + Nested FALSE)) + (object InterObjView "$UNNAMED$16" @264 + location (1776, 224) + quidu "381562DA01E9" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @265 + location (1776, 528) + InterObjView @264 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @266 + location (0, 384) + label (object SegLabel @267 + Parent_View @266 + location (688, 340) + quidu "381562590253" + anchor_loc 1 + nlines 1 + max_width 300 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @260 + supplier @262 + Focus_Src @261 + Focus_Entry @263 + origin (464, 384) + terminus (912, 384) + ordinal 0) + (object InterMessView "" @268 + location (0, 528) + label (object SegLabel @269 + Parent_View @268 + location (1352, 484) + quidu "3815669200E4" + anchor_loc 1 + nlines 1 + max_width 481 + justify 0 + label "drawWindow (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + client @262 + supplier @264 + Focus_Src @263 + Focus_Entry @265 + origin (944, 528) + terminus (1760, 528) + ordinal 1) + (object NoteView @270 + location (736, 544) + label (object ItemLabel + Parent_View @270 + location (625, 463) + nlines 3 + max_width 246 + label "every desktop") + width 306 + height 175))) + (object InteractionDiagram "draw window" + mechanism_ref @10 + quid "3815658B0009" + title "draw window" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @271 + location (448, 224) + label (object ItemLabel + Parent_View @271 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "3815659700F7" + width 300 + height 653 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @272 + location (448, 368) + InterObjView @271 + height 420 + y_coord 360 + Nested FALSE)) + (object InterObjView "$UNNAMED$17" @273 + location (784, 224) + quidu "381565AF0264" + width 300 + height 653 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @274 + location (784, 368) + InterObjView @273 + height 360 + y_coord 300 + Nested FALSE)) + (object InterObjView "$UNNAMED$18" @275 + location (1712, 224) + quidu "381568B302AA" + width 300 + height 653 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @276 + location (1712, 608) + InterObjView @275 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$19" @277 + location (1248, 224) + quidu "38157FCD0037" + width 300 + height 653 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @278 + location (1248, 432) + InterObjView @277 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @279 + location (0, 368) + label (object SegLabel @280 + Parent_View @279 + location (616, 324) + quidu "381565CB0247" + anchor_loc 1 + nlines 1 + max_width 293 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @271 + supplier @273 + Focus_Src @272 + Focus_Entry @274 + origin (464, 368) + terminus (768, 368) + ordinal 0) + (object InterMessView "" @281 + location (0, 608) + label (object SegLabel @282 + Parent_View @281 + location (1248, 564) + quidu "381568C5033D" + anchor_loc 1 + nlines 1 + max_width 293 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @273 + supplier @275 + Focus_Src @274 + Focus_Entry @276 + origin (800, 608) + terminus (1696, 608) + ordinal 2) + (object InterMessView "" @283 + location (0, 432) + label (object SegLabel @284 + Parent_View @283 + location (1016, 388) + quidu "38157FD80002" + anchor_loc 1 + nlines 1 + max_width 483 + justify 0 + label "drawWindow (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + client @273 + supplier @277 + Focus_Src @274 + Focus_Entry @278 + origin (800, 432) + terminus (1232, 432) + ordinal 1))) + (object InteractionDiagram "draw panel" + mechanism_ref @11 + quid "381569B5025B" + title "draw panel" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @285 + location (448, 224) + label (object ItemLabel + Parent_View @285 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "381569D400ED" + width 300 + height 541 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @286 + location (448, 352) + InterObjView @285 + height 324 + y_coord 264 + Nested FALSE)) + (object InterObjView "$UNNAMED$20" @287 + location (928, 224) + quidu "381569DD03B7" + width 300 + height 541 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @288 + location (928, 352) + InterObjView @287 + height 264 + y_coord 204 + Nested FALSE)) + (object InterObjView "$UNNAMED$21" @289 + location (1424, 224) + quidu "38156A09036A" + width 300 + height 541 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @290 + location (1424, 496) + InterObjView @289 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @291 + location (0, 352) + label (object SegLabel @292 + Parent_View @291 + location (688, 308) + quidu "381569E003A8" + anchor_loc 1 + nlines 1 + max_width 300 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @285 + supplier @287 + Focus_Src @286 + Focus_Entry @288 + origin (464, 352) + terminus (912, 352) + ordinal 0) + (object NoteView @293 + location (736, 496) + label (object ItemLabel + Parent_View @293 + location (622, 415) + nlines 3 + max_width 252 + label "every object in the panel") + width 312 + height 175) + (object InterMessView "" @294 + location (0, 496) + label (object SegLabel @295 + Parent_View @294 + location (1176, 452) + quidu "38156A0F02BF" + anchor_loc 1 + nlines 1 + max_width 300 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @287 + supplier @289 + Focus_Src @288 + Focus_Entry @290 + origin (944, 496) + terminus (1408, 496) + ordinal 1))) + (object InteractionDiagram "draw button" + mechanism_ref @12 + quid "38156AAF0016" + title "draw button" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object InterObjView "me" @296 + location (448, 224) + label (object ItemLabel + Parent_View @296 + location (448, 224) + anchor_loc 1 + nlines 2 + max_width 282 + justify 0 + label "me") + quidu "38156AC40297" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @297 + location (448, 368) + InterObjView @296 + height 340 + y_coord 280 + Nested FALSE)) + (object InterObjView "$UNNAMED$22" @298 + location (880, 224) + quidu "38156AE30269" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @299 + location (880, 368) + InterObjView @298 + height 280 + y_coord 220 + Nested FALSE)) + (object InterObjView "$UNNAMED$26" @300 + location (1504, 224) + quidu "38156AF302A8" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @301 + location (1504, 528) + InterObjView @300 + height 60 + y_coord 0 + Nested FALSE)) + (object InterObjView "$UNNAMED$27" @302 + location (1840, 224) + quidu "3815AB7300C2" + width 300 + height 573 + icon_height 0 + icon_width 0 + annotation 1 + Focus_Of_Control (object Focus_Of_Control "" @303 + location (1840, 432) + InterObjView @302 + height 60 + y_coord 0 + Nested FALSE)) + (object InterMessView "" @304 + location (0, 368) + label (object SegLabel @305 + Parent_View @304 + location (664, 324) + quidu "38156AE601D8" + anchor_loc 1 + nlines 1 + max_width 300 + justify 0 + label "draw (Graphics&)" + pctDist 0.500000 + height 45 + orientation 0) + client @296 + supplier @298 + Focus_Src @297 + Focus_Entry @299 + origin (464, 368) + terminus (864, 368) + ordinal 0) + (object InterMessView "" @306 + location (0, 528) + label (object SegLabel @307 + Parent_View @306 + location (1192, 484) + quidu "38156AF7007E" + anchor_loc 1 + nlines 1 + max_width 453 + justify 0 + label "drawButton (int, int, int, int, char*)" + pctDist 0.500000 + height 45 + orientation 0) + client @298 + supplier @300 + Focus_Src @299 + Focus_Entry @301 + origin (896, 528) + terminus (1488, 528) + ordinal 2) + (object InterMessView "" @308 + location (0, 432) + label (object SegLabel @309 + Parent_View @308 + location (1360, 388) + quidu "3815AB7A02A4" + anchor_loc 1 + nlines 1 + max_width 197 + justify 0 + label "getAbsPos (Rectangle*)" + pctDist 0.500000 + height 45 + orientation 0) + client @298 + supplier @302 + Focus_Src @299 + Focus_Entry @303 + origin (896, 432) + terminus (1824, 432) + ordinal 1)))))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "381431090239" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 237 + items (list diagram_item_list + (object CategoryView "lab7" @310 + location (304, 560) + label (object ItemLabel + Parent_View @310 + location (160, 476) + nlines 2 + max_width 288 + justify 0 + label "lab7") + quidu "38144FE103CA" + width 300 + height 180))))) + root_subsystem (object SubSystem "Component View" + quid "3814310901FE" + physical_models (list unit_reference_list + (object SubSystem "lab7" + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "H:\\kurs\\avC++\\lab7")) + quid "38144CB302F8" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list))) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "38143109024D" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + process_structure (object Processes + quid "3814310901FF" + ProcsNDevs (list + (object Process_Diagram "Deployment View" + quid "38143109024F" + title "Deployment View" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + properties (object Properties + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "roseId" + value "753117540") + (object Attribute + tool "cg" + name "propertyId" + value "809135966") + (object Attribute + tool "cg" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "PrecompiledHeader" + value "") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "CommentWidth" + value 60) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler2.1__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value FALSE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference($limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference($limit)") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "compiler3.0__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "") + (object Attribute + tool "cg" + name "GeneratePreserveRegions" + value TRUE))) + (object Attribute + tool "cg" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "InclusionProtectionSymbol" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value FALSE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateIDLModule" + value FALSE))) + (object Attribute + tool "cg" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value TRUE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")))) + (object Attribute + tool "cg" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value "") + (object Attribute + tool "cg" + name "OperationIsOneWay" + value FALSE) + (object Attribute + tool "cg" + name "Context" + value "") + (object Attribute + tool "cg" + name "Raises" + value ""))) + (object Attribute + tool "cg" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "Ordered" + value TRUE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$supplier") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$relationship") + (object Attribute + tool "cg" + name "SetName" + value "set_$relationship") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "SelectorName" + value "") + (object Attribute + tool "cg" + name "SelectorType" + value "") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedHasRelType" + value ("HasRelTypeSet" 47)) + (object Attribute + tool "cg" + name "HasRelTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass"))) + (object Attribute + tool "cg" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InstanceArguments" + value ""))) + (object Attribute + tool "cg" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$target") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "ContainerGet" + value "$data.get($keys)") + (object Attribute + tool "cg" + name "ContainerSet" + value "$data.set($keys,$value)") + (object Attribute + tool "cg" + name "QualifiedContainer" + value "") + (object Attribute + tool "cg" + name "AssocClassContainer" + value "$supplier *") + (object Attribute + tool "cg" + name "AssocClassInitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$target") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "SetName" + value "set_$target") + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetSetByReference" + value ("QualifiedGetSetByReferenceSet" 2)) + (object Attribute + tool "cg" + name "QualifiedGetSetByReferenceSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_GetSetByReference" + value 2))) + (object Attribute + tool "cg" + name "GenerateQualifiedGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetName" + value "get_$target") + (object Attribute + tool "cg" + name "QualifiedGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineQualifiedGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateQualifiedSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedSetName" + value "set_$target") + (object Attribute + tool "cg" + name "QualifiedSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineQualifiedSet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassDataMember" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassDataMemberName" + value "$target") + (object Attribute + tool "cg" + name "AssocClassDataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "AssocClassDataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "AssocClassDataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "AssocClassGetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GenerateAssocClassGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetName" + value "get_$target") + (object Attribute + tool "cg" + name "AssocClassGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineAssocClassGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassSetName" + value "set_$target") + (object Attribute + tool "cg" + name "AssocClassSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineAssocClassSet" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassForwardReferenceOnly" + value TRUE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedRoleType" + value ("AssocTypeSet" 47)) + (object Attribute + tool "cg" + name "AssocTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE))) + (object Attribute + tool "cg" + name "default__Uses" + value (list Attribute_Set + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "BodyReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE))) + (object Attribute + tool "cg" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "DirectoryIsOnSearchList" + value FALSE) + (object Attribute + tool "cg" + name "PrecompiledHeader" + value ""))) + (object Attribute + tool "DDL" + name "propertyId" + value "809135966") + (object Attribute + tool "DDL" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "DataBase" + value ("DataBaseSet" 800)) + (object Attribute + tool "DDL" + name "DataBaseSet" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ANSI" + value 800) + (object Attribute + tool "DDL" + name "Oracle" + value 801) + (object Attribute + tool "DDL" + name "SQLServer" + value 802) + (object Attribute + tool "DDL" + name "Sybase" + value 803) + (object Attribute + tool "DDL" + name "Watcom" + value 804))) + (object Attribute + tool "DDL" + name "PrimaryKeyColumnName" + value "Id") + (object Attribute + tool "DDL" + name "PrimaryKeyColumnType" + value "NUMBER(5)") + (object Attribute + tool "DDL" + name "ViewName" + value "V_") + (object Attribute + tool "DDL" + name "TableName" + value "T_") + (object Attribute + tool "DDL" + name "InheritSuffix" + value "_V") + (object Attribute + tool "DDL" + name "DropClause" + value FALSE) + (object Attribute + tool "DDL" + name "BaseViews" + value FALSE) + (object Attribute + tool "DDL" + name "DDLScriptFilename" + value "DDL1.SQL"))) + (object Attribute + tool "DDL" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ColumnType" + value "VARCHAR") + (object Attribute + tool "DDL" + name "Length" + value "") + (object Attribute + tool "DDL" + name "NullsOK" + value TRUE) + (object Attribute + tool "DDL" + name "PrimaryKey" + value FALSE) + (object Attribute + tool "DDL" + name "Unique" + value FALSE) + (object Attribute + tool "DDL" + name "CompositeUnique" + value FALSE) + (object Attribute + tool "DDL" + name "CheckConstraint" + value ""))) + (object Attribute + tool "cg" + name "default__Category" + value (list Attribute_Set + (object Attribute + tool "cg" + name "GenerateIDLModule" + value TRUE) + (object Attribute + tool "cg" + name "ModuleName" + value (value Text "")))) + (object Attribute + tool "cg" + name "simple__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 206)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))) + (object Attribute + tool "cg" + name "ConstValue" + value "") + (object Attribute + tool "cg" + name "GenerateDefaultSpecifier" + value FALSE) + (object Attribute + tool "cg" + name "DefaultSpecifier" + value "") + (object Attribute + tool "cg" + name "IDLElement" + value TRUE) + (object Attribute + tool "cg" + name "IDLSpecificationType" + value ("IDLSpecSet" 22)) + (object Attribute + tool "cg" + name "IDLSpecSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Interface" + value 22) + (object Attribute + tool "cg" + name "Typedef" + value 54) + (object Attribute + tool "cg" + name "Enumeration" + value 8) + (object Attribute + tool "cg" + name "Const" + value 71) + (object Attribute + tool "cg" + name "Exception" + value 61) + (object Attribute + tool "cg" + name "Struct" + value 51) + (object Attribute + tool "cg" + name "Union" + value 81))))) + (object Attribute + tool "cg" + name "noGetSet__Has" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "Ordered" + value TRUE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$supplier") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GetName" + value "get_$relationship") + (object Attribute + tool "cg" + name "SetName" + value "set_$relationship") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "SelectorName" + value "") + (object Attribute + tool "cg" + name "SelectorType" + value "") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "cg" + name "BoundedHasRelType" + value ("HasRelTypeSet" 47)) + (object Attribute + tool "cg" + name "HasRelTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "noGetSet__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 44)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value FALSE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CaseSpecifier" + value "") + (object Attribute + tool "cg" + name "IsReadOnly" + value FALSE)))) + quid "381431090200")) diff --git a/Lab7/list.cpp b/Lab7/list.cpp new file mode 100644 index 0000000..9780ab4 --- /dev/null +++ b/Lab7/list.cpp @@ -0,0 +1,131 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package body +//## Subsystem: figures +//## Source file: H:\kurs\avC++\lab4\List.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// List +#include "List.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Parameterized Class List + + + +template +List::List() + //## begin List::List%.hasinit preserve=no + //## end List::List%.hasinit + //## begin List::List%.initialization preserve=yes + //## end List::List%.initialization +{ + //## begin List::List%.body preserve=yes + size = 0; + head = NULL; + current = NULL; + //## end List::List%.body +} + + +template +List::~List() +{ + //## begin List::~List%.body preserve=yes + while(head != NULL){ + current = head; + head = current->getNext(); + delete current; + } + + //## end List::~List%.body +} + + + +//## Other Operations (implementation) +template +T List::getFirst () +{ + //## begin List::getFirst%937920679.body preserve=yes + current = head; + return head->getData(); + //## end List::getFirst%937920679.body +} + +template +T List::getNext () +{ + //## begin List::getNext%937920680.body preserve=yes + current = current->getNext(); + return current->getData(); + //## end List::getNext%937920680.body +} + +template +bool List::isLast () +{ + //## begin List::isLast%937920681.body preserve=yes + if(current == NULL) + return false; + return current->isLast(); + //## end List::isLast%937920681.body +} + +template +void List::addElement (T element) +{ + //## begin List::addElement%938503949.body preserve=yes + Node* temp; + temp = new Node(element); + + size++; + if(head == NULL) + head = temp; + else{ + current = head; + while(!current->isLast()) + current = current->getNext(); + current->setNext(temp); + } + //## end List::addElement%938503949.body +} + +template +bool List::isEmpty () +{ + //## begin List::isEmpty%939023037.body preserve=yes + if(head == NULL) + return true; + return false; + //## end List::isEmpty%939023037.body +} + +// Additional Declarations + //## begin List.declarations preserve=yes + //## end List.declarations + +template +int List::getSize () +{ + //## begin List::isEmpty%939023037.body preserve=yes + return size; + //## end List::isEmpty%939023037.body +} + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/list.h b/Lab7/list.h new file mode 100644 index 0000000..bead264 --- /dev/null +++ b/Lab7/list.h @@ -0,0 +1,113 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: List; Pseudo Package specification +//## Subsystem: figures +//## Source file: H:\kurs\avC++\lab4\List.h + +#ifndef List_h +#define List_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Node +#include "Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: List; Parameterized Class +//## Category: Figures +//## Subsystem: figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class List +{ + //## begin List.initialDeclarations preserve=yes + //## end List.initialDeclarations + + public: + //## Constructors (generated) + List(); + + //## Destructor (generated) + ~List(); + + + //## Other Operations (specified) + //## Operation: getFirst%937920679 + T getFirst (); + + //## Operation: getNext%937920680 + T getNext (); + + //## Operation: isLast%937920681 + bool isLast (); + + //## Operation: addElement%938503949 + void addElement (T element); + + //## Operation: isEmpty%939023037 + bool isEmpty (); + + + // Additional Public Declarations + //## begin List.public preserve=yes + int getSize (); + //## end List.public + + protected: + // Additional Protected Declarations + //## begin List.protected preserve=yes + //## end List.protected + + private: + // Additional Private Declarations + //## begin List.private preserve=yes + //## end List.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation List::head.has + //## begin List::head.has preserve=no public: Node {1 -> 1UO} + Node *head; + //## end List::head.has + + // Data Members for Class Attributes + + //## Attribute: current + //## begin List::current.attr preserve=no private: Node {R} + Node *current; + //## end List::current.attr + + // Additional Implementation Declarations + //## begin List.implementation preserve=yes + int size; + //## end List.implementation + +}; + +//## begin List.postscript preserve=yes +#include "list.cpp" +//## end List.postscript + +// Parameterized Class List + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/main.cpp b/Lab7/main.cpp new file mode 100644 index 0000000..34e234d --- /dev/null +++ b/Lab7/main.cpp @@ -0,0 +1,56 @@ +//# +//# main.cpp +//# +//# ======================================================= +//# Lab i Avacerad C++ +//# 7. User Interface +//# +//# +//# Christian Ohlsson +//# Daniel Alfredsson +//# Karlstads universitet +//# 991131 +//# ======================================================= + +#include +#include "Desktop.h" +#include "Button.h" +#include "BpngBttn.h" +#include "ExtBttnH.h" +#include "Panel.h" +#include "NTConsle.h" +#include "NTvntrdr.h" + +void main(void){ + NTEventReader e; + Desktop d; + NTConsole n; + + Panel p(14,2,15,10); + Window w(10,5,30,15,"Window"); + +/* TopDown td("File"); This is how it works + mi = MenuItem("Open"); with TopDown menus. + mi.setAction(&bh1); + + td.add(&mi); + w.add(&td); */ + + BeepingBH bh1; + ExitBH bh2; + + Button b1(1,1,9,3,"Button"); + Button b2(1,6,9,3,"Exit"); + + b1.setAction(&bh1); + b2.setAction(&bh2); + + d.add(&w); + + p.add(&b1); + p.add(&b2); + w.add(&p); + + d.draw(n); + d.run(e, n); +} \ No newline at end of file diff --git a/Lab7/menu.cpp b/Lab7/menu.cpp new file mode 100644 index 0000000..2c2346e --- /dev/null +++ b/Lab7/menu.cpp @@ -0,0 +1,45 @@ +#include +//## end module.includes + +// MenuBH +#include "Menu.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class MenuBH + +MenuBH::MenuBH() + //## begin MenuBH::MenuBH%.hasinit preserve=no + //## end MenuBH::MenuBH%.hasinit + //## begin MenuBH::MenuBH%.initialization preserve=yes + //## end MenuBH::MenuBH%.initialization +{ + //## begin MenuBH::MenuBH%.body preserve=yes + //## end MenuBH::MenuBH%.body +} + +MenuBH::~MenuBH() +{ + //## begin MenuBH::~MenuBH%.body preserve=yes + //## end MenuBH::~MenuBH%.body +} + + + +//## Other Operations (implementation) +void MenuBH::doOnClick () +{ + //## begin MenuBH::doOnClick%940854121.body preserve=yes + MessageBeep(0xFFFFFFFF); + //## end MenuBH::doOnClick%940854121.body +} + +// Additional Declarations + //## begin MenuBH.declarations preserve=yes + //## end MenuBH.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/menu.h b/Lab7/menu.h new file mode 100644 index 0000000..735cca9 --- /dev/null +++ b/Lab7/menu.h @@ -0,0 +1,89 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: MenuBH; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\BpngBttn.h + +#ifndef Menu_h +#define Menu_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Handler +#include "Handler.h" +// BH +#include "BttnHndl.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: MenuBH +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class MenuBH : public Handler, //## Inherits: + public BH //## Inherits: +{ + //## begin MenuBH.initialDeclarations preserve=yes + //## end MenuBH.initialDeclarations + + public: + + //## Constructors (specified) + //## Operation: MenuBH%941014000 + MenuBH (); + + //## Destructor (generated) + ~MenuBH(); + + + //## Other Operations (specified) + //## Operation: doOnClick%940854121 + void doOnClick (); + + // Additional Public Declarations + //## begin MenuBH.public preserve=yes + //## end MenuBH.public + + protected: + // Data Members for Class Attributes + + // Additional Protected Declarations + //## begin MenuBH.protected preserve=yes + //## end MenuBH.protected + + private: + // Additional Private Declarations + //## begin MenuBH.private preserve=yes + //## end MenuBH.private + + private: //## implementation + // Additional Implementation Declarations + //## begin MenuBH.implementation preserve=yes + //## end MenuBH.implementation + +}; + +//## begin MenuBH.postscript preserve=yes +//## end MenuBH.postscript + +// Class MenuBH + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/mosevent.cpp b/Lab7/mosevent.cpp new file mode 100644 index 0000000..8682eca --- /dev/null +++ b/Lab7/mosevent.cpp @@ -0,0 +1,51 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: MouseEvent; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\MosEvent.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// MouseEvent +#include "MosEvent.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class MouseEvent + +MouseEvent::MouseEvent() + //## begin MouseEvent::MouseEvent%.hasinit preserve=no + //## end MouseEvent::MouseEvent%.hasinit + //## begin MouseEvent::MouseEvent%.initialization preserve=yes + //## end MouseEvent::MouseEvent%.initialization +{ + //## begin MouseEvent::MouseEvent%.body preserve=yes + //## end MouseEvent::MouseEvent%.body +} + + +MouseEvent::~MouseEvent() +{ + //## begin MouseEvent::~MouseEvent%.body preserve=yes + //## end MouseEvent::~MouseEvent%.body +} + + +// Additional Declarations + //## begin MouseEvent.declarations preserve=yes + //## end MouseEvent.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/mosevent.h b/Lab7/mosevent.h new file mode 100644 index 0000000..d00820e --- /dev/null +++ b/Lab7/mosevent.h @@ -0,0 +1,77 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: MouseEvent; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\MosEvent.h + +#ifndef MosEvent_h +#define MosEvent_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Event +#include "Event.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: MouseEvent +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class MouseEvent : public Event //## Inherits: +{ + //## begin MouseEvent.initialDeclarations preserve=yes + //## end MouseEvent.initialDeclarations + + public: + //## Constructors (generated) + MouseEvent(); + + //## Destructor (generated) + ~MouseEvent(); + + // Additional Public Declarations + //## begin MouseEvent.public preserve=yes + //## end MouseEvent.public + + protected: + // Additional Protected Declarations + //## begin MouseEvent.protected preserve=yes + //## end MouseEvent.protected + + private: + // Additional Private Declarations + //## begin MouseEvent.private preserve=yes + //## end MouseEvent.private + + private: //## implementation + // Additional Implementation Declarations + //## begin MouseEvent.implementation preserve=yes + //## end MouseEvent.implementation + +}; + +//## begin MouseEvent.postscript preserve=yes +//## end MouseEvent.postscript + +// Class MouseEvent + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/node.cpp b/Lab7/node.cpp new file mode 100644 index 0000000..bc18255 --- /dev/null +++ b/Lab7/node.cpp @@ -0,0 +1,94 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package body +//## Subsystem: figures +//## Source file: H:\kurs\avC++\lab4\Node.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// Node +#include "Node.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Parameterized Class Node + + + +template +Node::Node (T _data) + //## begin Node::Node%938587803.hasinit preserve=no + //## end Node::Node%938587803.hasinit + //## begin Node::Node%938587803.initialization preserve=yes + //## end Node::Node%938587803.initialization +{ + //## begin Node::Node%938587803.body preserve=yes + data = _data; + next = (Node*)0; + //## end Node::Node%938587803.body +} + + +template +Node::~Node() +{ + //## begin Node::~Node%.body preserve=yes + //## end Node::~Node%.body +} + + + +//## Other Operations (implementation) +template +T Node::getData () +{ + //## begin Node::getData%938587800.body preserve=yes + return data; + //## end Node::getData%938587800.body +} + +template +bool Node::isLast () +{ + //## begin Node::isLast%938587801.body preserve=yes + if(next == (Node*)0) + return true; + return false; + //## end Node::isLast%938587801.body +} + +template +Node* Node::getNext () +{ + //## begin Node::getNext%938587802.body preserve=yes + return next; + //## end Node::getNext%938587802.body +} + +template +void Node::setNext (Node* newNode) +{ + //## begin Node::setNext%938587804.body preserve=yes + next = newNode; + //## end Node::setNext%938587804.body +} + +// Additional Declarations + //## begin Node.declarations preserve=yes + //## end Node.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/node.h b/Lab7/node.h new file mode 100644 index 0000000..33f4257 --- /dev/null +++ b/Lab7/node.h @@ -0,0 +1,106 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Node; Pseudo Package specification +//## Subsystem: figures +//## Source file: H:\kurs\avC++\lab4\Node.h + +#ifndef Node_h +#define Node_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Node; Parameterized Class +//## Category: Figures +//## Subsystem: figures +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class Node +{ + //## begin Node.initialDeclarations preserve=yes + //## end Node.initialDeclarations + + public: + //## Constructors (specified) + //## Operation: Node%938587803 + Node (T _data); + + //## Destructor (generated) + ~Node(); + + + //## Other Operations (specified) + //## Operation: getData%938587800 + T getData (); + + //## Operation: isLast%938587801 + bool isLast (); + + //## Operation: getNext%938587802 + Node* getNext (); + + //## Operation: setNext%938587804 + void setNext (Node* newNode); + + // Additional Public Declarations + //## begin Node.public preserve=yes + //## end Node.public + + protected: + // Additional Protected Declarations + //## begin Node.protected preserve=yes + //## end Node.protected + + private: + // Additional Private Declarations + //## begin Node.private preserve=yes + //## end Node.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Node::next.has + //## begin Node::next.has preserve=no private: Node {1 -> 1RO} + Node *next; + //## end Node::next.has + + // Data Members for Class Attributes + + //## Attribute: data + //## begin Node::data.attr preserve=no private: T {U} + T data; + //## end Node::data.attr + + // Additional Implementation Declarations + //## begin Node.implementation preserve=yes + //## end Node.implementation + +}; + +//## begin Node.postscript preserve=yes +#include "Node.cpp" +//## end Node.postscript + +// Parameterized Class Node + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/ntconsle.cpp b/Lab7/ntconsle.cpp new file mode 100644 index 0000000..a224819 --- /dev/null +++ b/Lab7/ntconsle.cpp @@ -0,0 +1,121 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: NTConsole; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\NTConsle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// NTConsole +#include "NTConsle.h" +//## begin module.additionalDeclarations preserve=yes +#include +#include +//## end module.additionalDeclarations + + +// Class NTConsole + +NTConsole::NTConsole() + //## begin NTConsole::NTConsole%.hasinit preserve=no + //## end NTConsole::NTConsole%.hasinit + //## begin NTConsole::NTConsole%.initialization preserve=yes + //## end NTConsole::NTConsole%.initialization +{ + //## begin NTConsole::NTConsole%.body preserve=yes + //## end NTConsole::NTConsole%.body +} + + +NTConsole::~NTConsole() +{ + //## begin NTConsole::~NTConsole%.body preserve=yes + //## end NTConsole::~NTConsole%.body +} + + + +//## Other Operations (implementation) +void NTConsole::drawWindow (int xpos, int ypos, int width, int height, char* name) +{ + //## begin NTConsole::drawWindow%940929802.body preserve=yes + HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); + COORD ul; + char buff[] = " "; + LPVOID param; + DWORD written=0; + + ul.X = xpos; + ul.Y = ypos; + SetConsoleCursorPosition(h,ul); + SetConsoleTextAttribute(h,FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY|BACKGROUND_BLUE|BACKGROUND_INTENSITY); + + // Print "titlebar" + WriteConsole(h,buff,strlen(buff),&written,param); + WriteConsole(h,name,strlen(name),&written,param); + for(int j=0; j<(width-strlen(name)-1); j++) + WriteConsole(h,buff,strlen(buff),&written,param); + + // Print the rest if the window + SetConsoleTextAttribute(h,FOREGROUND_BLUE|FOREGROUND_INTENSITY|BACKGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_RED); + + for(int i=1; i +{ + //## begin NTConsole.initialDeclarations preserve=yes + //## end NTConsole.initialDeclarations + + public: + //## Constructors (generated) + NTConsole(); + + //## Destructor (generated) + ~NTConsole(); + + + //## Other Operations (specified) + //## Operation: drawWindow%940929802 + void drawWindow (int xpos, int ypos, int width, int height, char* name); + + //## Operation: drawButton%940929803 + void drawButton (int xpos, int ypos, int width, int height, char* text); + + // Additional Public Declarations + //## begin NTConsole.public preserve=yes + //## end NTConsole.public + + protected: + // Additional Protected Declarations + //## begin NTConsole.protected preserve=yes + //## end NTConsole.protected + + private: + // Additional Private Declarations + //## begin NTConsole.private preserve=yes + //## end NTConsole.private + + private: //## implementation + // Additional Implementation Declarations + //## begin NTConsole.implementation preserve=yes + //## end NTConsole.implementation + +}; + +//## begin NTConsole.postscript preserve=yes +//## end NTConsole.postscript + +// Class NTConsole + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/ntvntrdr.cpp b/Lab7/ntvntrdr.cpp new file mode 100644 index 0000000..30fe750 --- /dev/null +++ b/Lab7/ntvntrdr.cpp @@ -0,0 +1,91 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: NTEventReader; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\NTvntRdr.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +#include +//## end module.includes + +// NTEventReader +#include "NTvntRdr.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class NTEventReader + +NTEventReader::NTEventReader() + //## begin NTEventReader::NTEventReader%.hasinit preserve=no + //## end NTEventReader::NTEventReader%.hasinit + //## begin NTEventReader::NTEventReader%.initialization preserve=yes + //## end NTEventReader::NTEventReader%.initialization +{ + //## begin NTEventReader::NTEventReader%.body preserve=yes + //## end NTEventReader::NTEventReader%.body +} + + +NTEventReader::~NTEventReader() +{ + //## begin NTEventReader::~NTEventReader%.body preserve=yes + //## end NTEventReader::~NTEventReader%.body +} + + + +//## Other Operations (implementation) +Event NTEventReader::getEvent () +{ + //## begin NTEventReader::getEvent%940854115.body preserve=yes + HANDLE hln = GetStdHandle(STD_INPUT_HANDLE); + _INPUT_RECORD lpBuffer[5]; + DWORD length=1; + DWORD lpNumberOfEventsRead=0; + WORD key=0, scan=0; + Event e; + + ReadConsoleInput(hln,&lpBuffer[0],length,&lpNumberOfEventsRead); + + for(DWORD i=0; i +{ + //## begin NTEventReader.initialDeclarations preserve=yes + //## end NTEventReader.initialDeclarations + + public: + //## Constructors (generated) + NTEventReader(); + + //## Destructor (generated) + ~NTEventReader(); + + + //## Other Operations (specified) + //## Operation: getEvent%940854115 + Event getEvent (); + + // Additional Public Declarations + //## begin NTEventReader.public preserve=yes + //## end NTEventReader.public + + protected: + // Additional Protected Declarations + //## begin NTEventReader.protected preserve=yes + //## end NTEventReader.protected + + private: + // Additional Private Declarations + //## begin NTEventReader.private preserve=yes + //## end NTEventReader.private + + private: //## implementation + // Additional Implementation Declarations + //## begin NTEventReader.implementation preserve=yes + //## end NTEventReader.implementation + +}; + +//## begin NTEventReader.postscript preserve=yes +//## end NTEventReader.postscript + +// Class NTEventReader + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/panel.cpp b/Lab7/panel.cpp new file mode 100644 index 0000000..7575adc --- /dev/null +++ b/Lab7/panel.cpp @@ -0,0 +1,96 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Panel; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Panel.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Panel +#include "Panel.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Panel + +Panel::Panel() + //## begin Panel::Panel%.hasinit preserve=no + //## end Panel::Panel%.hasinit + //## begin Panel::Panel%.initialization preserve=yes + //## end Panel::Panel%.initialization +{ + //## begin Panel::Panel%.body preserve=yes + //## end Panel::Panel%.body +} + +Panel::Panel (int xpos, int ypos, int width, int height) + //## begin Panel::Panel%940854126.hasinit preserve=no + //## end Panel::Panel%940854126.hasinit + //## begin Panel::Panel%940854126.initialization preserve=yes + //## end Panel::Panel%940854126.initialization +{ + //## begin Panel::Panel%940854126.body preserve=yes + Panel::xpos = xpos; + Panel::ypos = ypos; + Panel::width = width; + Panel::height = height; + //## end Panel::Panel%940854126.body +} + + +Panel::~Panel() +{ + //## begin Panel::~Panel%.body preserve=yes + //## end Panel::~Panel%.body +} + + + +//## Other Operations (implementation) +void Panel::getAbsPos (Rectangle* r) +{ + //## begin Panel::getAbsPos%940945807.body preserve=yes + int x1,y1,x2,y2; + + x1 = xpos; + y1 = ypos; + x2 = width; + y2 = height; + + if(getPpp() != 0){ + getPpp()->getAbsPos(r); + x1 += r->getXpos(); + y1 += r->getYpos(); + } + + r->setValue(x1, y1, x2, y2); + + //## end Panel::getAbsPos%940945807.body +} + +void Panel::add (Component* c) +{ + //## begin Panel::add%940945809.body preserve=yes + c->setPpp(this); + CompositeComponent::add(c); + //## end Panel::add%940945809.body +} + +// Additional Declarations + //## begin Panel.declarations preserve=yes + //## end Panel.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/panel.h b/Lab7/panel.h new file mode 100644 index 0000000..9cba9e8 --- /dev/null +++ b/Lab7/panel.h @@ -0,0 +1,90 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Panel; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Panel.h + +#ifndef Panel_h +#define Panel_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// CompositeComponent +#include "CmpstCmp.h" +//## begin module.additionalDeclarations preserve=yes +class CompositeComponent; +//## end module.additionalDeclarations + + +//## Class: Panel +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Panel : public CompositeComponent //## Inherits: +{ + //## begin Panel.initialDeclarations preserve=yes + //## end Panel.initialDeclarations + + public: + //## Constructors (generated) + Panel(); + + //## Constructors (specified) + //## Operation: Panel%940854126 + Panel (int xpos, int ypos, int width, int height); + + //## Destructor (generated) + ~Panel(); + + + //## Other Operations (specified) + //## Operation: getAbsPos%940945807 + void getAbsPos (Rectangle* r); + + //## Operation: add%940945809 + void add (Component* c); + + // Additional Public Declarations + //## begin Panel.public preserve=yes + //## end Panel.public + + protected: + // Additional Protected Declarations + //## begin Panel.protected preserve=yes + //## end Panel.protected + + private: + // Additional Private Declarations + //## begin Panel.private preserve=yes + //## end Panel.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Panel.implementation preserve=yes + //## end Panel.implementation + +}; + +//## begin Panel.postscript preserve=yes +//## end Panel.postscript + +// Class Panel + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/rectngle.cpp b/Lab7/rectngle.cpp new file mode 100644 index 0000000..ae28e10 --- /dev/null +++ b/Lab7/rectngle.cpp @@ -0,0 +1,95 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Rectngle.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Rectangle +#include "Rectngle.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Class Rectangle + + + + + +Rectangle::Rectangle() + //## begin Rectangle::Rectangle%.hasinit preserve=no + //## end Rectangle::Rectangle%.hasinit + //## begin Rectangle::Rectangle%.initialization preserve=yes + //## end Rectangle::Rectangle%.initialization +{ + //## begin Rectangle::Rectangle%.body preserve=yes + //## end Rectangle::Rectangle%.body +} + + +Rectangle::~Rectangle() +{ + //## begin Rectangle::~Rectangle%.body preserve=yes + //## end Rectangle::~Rectangle%.body +} + + + +//## Other Operations (implementation) +int Rectangle::getXpos () +{ + //## begin Rectangle::getXpos%940945803.body preserve=yes + return xPos; + //## end Rectangle::getXpos%940945803.body +} + +int Rectangle::getYpos () +{ + //## begin Rectangle::getYpos%940945804.body preserve=yes + return yPos; + //## end Rectangle::getYpos%940945804.body +} + +int Rectangle::getWidth () +{ + //## begin Rectangle::getWidth%940945805.body preserve=yes + return width; + //## end Rectangle::getWidth%940945805.body +} + +int Rectangle::getHeight() +{ + //## begin Rectangle::getHeight%940945806.body preserve=yes + return height; + //## end Rectangle::getHeight%940945806.body +} + +void Rectangle::setValue (int x1, int y1, int x2, int y2) +{ + //## begin Rectangle::setValue%940945813.body preserve=yes + xPos = x1; + yPos = y1; + width = x2; + height = y2; + //## end Rectangle::setValue%940945813.body +} + +// Additional Declarations + //## begin Rectangle.declarations preserve=yes + //## end Rectangle.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/rectngle.h b/Lab7/rectngle.h new file mode 100644 index 0000000..85cbc19 --- /dev/null +++ b/Lab7/rectngle.h @@ -0,0 +1,114 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Rectangle; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Rectngle.h + +#ifndef Rectngle_h +#define Rectngle_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Rectangle +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +class Rectangle +{ + //## begin Rectangle.initialDeclarations preserve=yes + //## end Rectangle.initialDeclarations + + public: + //## Constructors (generated) + Rectangle(); + + //## Destructor (generated) + ~Rectangle(); + + + //## Other Operations (specified) + //## Operation: getXpos%940945803 + int getXpos (); + + //## Operation: getYpos%940945804 + int getYpos (); + + //## Operation: getWidth%940945805 + int getWidth (); + + //## Operation: getHeight%940945806 + int getHeight (); + + //## Operation: setValue%940945813 + void setValue (int x1, int y1, int x2, int y2); + + // Additional Public Declarations + //## begin Rectangle.public preserve=yes + //## end Rectangle.public + + protected: + // Data Members for Class Attributes + + //## Attribute: xPos + //## begin Rectangle::xPos.attr preserve=no private: int {U} + int xPos; + //## end Rectangle::xPos.attr + + //## Attribute: yPos + //## begin Rectangle::yPos.attr preserve=no private: int {U} + int yPos; + //## end Rectangle::yPos.attr + + //## Attribute: width + //## begin Rectangle::width.attr preserve=no private: int {U} + int width; + //## end Rectangle::width.attr + + //## Attribute: height + //## begin Rectangle::height.attr preserve=no private: int {U} + int height; + //## end Rectangle::height.attr + + // Additional Protected Declarations + //## begin Rectangle.protected preserve=yes + //## end Rectangle.protected + + private: + // Additional Private Declarations + //## begin Rectangle.private preserve=yes + //## end Rectangle.private + + private: //## implementation + // Additional Implementation Declarations + //## begin Rectangle.implementation preserve=yes + //## end Rectangle.implementation + +}; + +//## begin Rectangle.postscript preserve=yes +//## end Rectangle.postscript + +// Class Rectangle + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/window.cpp b/Lab7/window.cpp new file mode 100644 index 0000000..ca6daf6 --- /dev/null +++ b/Lab7/window.cpp @@ -0,0 +1,119 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Window; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Window.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +#include +//## end module.includes + +// Window +#include "Window.h" +//## begin module.additionalDeclarations preserve=yes +#include +//## end module.additionalDeclarations + + +// Class Window + + + + + + + +Window::Window() + //## begin Window::Window%.hasinit preserve=no + //## end Window::Window%.hasinit + //## begin Window::Window%.initialization preserve=yes + //## end Window::Window%.initialization +{ + //## begin Window::Window%.body preserve=yes + //## end Window::Window%.body +} + +Window::Window (int xpos, int ypos, int width, int height, char* name) + //## begin Window::Window%940854119.hasinit preserve=no + //## end Window::Window%940854119.hasinit + //## begin Window::Window%940854119.initialization preserve=yes + //## end Window::Window%940854119.initialization +{ + //## begin Window::Window%940854119.body preserve=yes + + Window::xpos = xpos; + Window::ypos = ypos; + Window::width = width; + Window::height = height; + //strcpy(Window::name, name); + Window::name = name; + + panel = new Panel(xpos,ypos,width,height); + panel->setPpp((Panel*) 0); + //## end Window::Window%940854119.body +} + + +Window::~Window() +{ + //## begin Window::~Window%.body preserve=yes + delete panel; + //## end Window::~Window%.body +} + + + +//## Other Operations (implementation) +void Window::draw (Graphics& g) +{ + //## begin Window::draw%940929792.body preserve=yes + g.drawWindow(xpos,ypos,width,height,name); + panel->draw(g); + //## end Window::draw%940929792.body +} + +void Window::add (Component* c) +{ + //## begin Window::add%940943118.body preserve=yes + panel->add(c); + //## end Window::add%940943118.body +} + +bool Window::isHit (int x, int y) +{ + //## begin Window::isHit%941013988.body preserve=yes + return panel->isHit(x,y); + //## end Window::isHit%941013988.body +} + +void Window::handleKeyEvent (Event e) +{ + //## begin Window::handleKeyEvent%941013989.body preserve=yes + + //## end Window::handleKeyEvent%941013989.body +} + +void Window::handleMouseEvent (Event e) +{ + //## begin Window::handleMouseEvent%941013990.body preserve=yes + panel->handleMouseEvent(e); + + //## end Window::handleMouseEvent%941013990.body +} + +// Additional Declarations + //## begin Window.declarations preserve=yes + //## end Window.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/window.h b/Lab7/window.h new file mode 100644 index 0000000..e3d89bb --- /dev/null +++ b/Lab7/window.h @@ -0,0 +1,136 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: Window; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\Window.h + +#ifndef Window_h +#define Window_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Panel +#include "Panel.h" +// Graphics +#include "Graphics.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: Window +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Graphics { -> } + +class Window +{ + //## begin Window.initialDeclarations preserve=yes + //## end Window.initialDeclarations + + public: + //## Constructors (generated) + Window(); + + //## Constructors (specified) + //## Operation: Window%940854119 + Window (int xpos, int ypos, int width, int height, char* name); + + //## Destructor (generated) + ~Window(); + + + //## Other Operations (specified) + //## Operation: draw%940929792 + void draw (Graphics& g); + + //## Operation: add%940943118 + void add (Component* c); + + //## Operation: isHit%941013988 + bool isHit (int x, int y); + + //## Operation: handleKeyEvent%941013989 + void handleKeyEvent (Event e); + + //## Operation: handleMouseEvent%941013990 + void handleMouseEvent (Event e); + + // Additional Public Declarations + //## begin Window.public preserve=yes + //## end Window.public + + protected: + // Data Members for Class Attributes + + //## Attribute: name + //## begin Window::name.attr preserve=no private: char* {U} + char* name; + //## end Window::name.attr + + //## Attribute: xpos + //## begin Window::xpos.attr preserve=no protected: int {U} + int xpos; + //## end Window::xpos.attr + + //## Attribute: ypos + //## begin Window::ypos.attr preserve=no protected: int {U} + int ypos; + //## end Window::ypos.attr + + //## Attribute: width + //## begin Window::width.attr preserve=no protected: int {U} + int width; + //## end Window::width.attr + + //## Attribute: height + //## begin Window::height.attr preserve=no protected: int {U} + int height; + //## end Window::height.attr + + // Additional Protected Declarations + //## begin Window.protected preserve=yes + //## end Window.protected + + private: + // Additional Private Declarations + //## begin Window.private preserve=yes + //## end Window.private + + private: //## implementation + // Data Members for Has Relationships + + //## Documentation Window::panel.has + //## begin Window::panel.has preserve=no public: Panel {1 -> 1RO} + Panel *panel; + //## end Window::panel.has + + // Additional Implementation Declarations + //## begin Window.implementation preserve=yes + //## end Window.implementation + +}; + +//## begin Window.postscript preserve=yes +//## end Window.postscript + +// Class Window + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/wndwlist.cpp b/Lab7/wndwlist.cpp new file mode 100644 index 0000000..68f668f --- /dev/null +++ b/Lab7/wndwlist.cpp @@ -0,0 +1,30 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: WindowList; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\WndwList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// WindowList +#include "WndwList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## begin WindowList.instantiation preserve=no +template class List< Window* >; +//## end WindowList.instantiation + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/wndwlist.h b/Lab7/wndwlist.h new file mode 100644 index 0000000..75e73e3 --- /dev/null +++ b/Lab7/wndwlist.h @@ -0,0 +1,48 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: WindowList; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\WndwList.h + +#ifndef WndwList_h +#define WndwList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// Window +#include "Window.h" +// XList +#include "List.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: WindowList; Instantiated Class +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +//## Uses: ; Window { -> } + +typedef List< Window* > WindowList; + +//## begin WindowList.postscript preserve=yes +//## end WindowList.postscript + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif diff --git a/Lab7/xlist.cpp b/Lab7/xlist.cpp new file mode 100644 index 0000000..8457952 --- /dev/null +++ b/Lab7/xlist.cpp @@ -0,0 +1,62 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: XList; Pseudo Package body +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\XList.cpp + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +// XList +#include "H:\kurs\avC++\lab7\XList.h" +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +// Parameterized Class XList + +template +XList::XList() + //## begin XList::XList%.hasinit preserve=no + //## end XList::XList%.hasinit + //## begin XList::XList%.initialization preserve=yes + //## end XList::XList%.initialization +{ + //## begin XList::XList%.body preserve=yes + //## end XList::XList%.body +} + + +template +XList::~XList() +{ + //## begin XList::~XList%.body preserve=yes + //## end XList::~XList%.body +} + + + +//## Other Operations (implementation) +template +void XList::add (T element) +{ + //## begin XList::add%940854125.body preserve=yes + //## end XList::add%940854125.body +} + +// Additional Declarations + //## begin XList.declarations preserve=yes + //## end XList.declarations + + + +//## begin module.epilog preserve=yes +//## end module.epilog diff --git a/Lab7/xlist.h b/Lab7/xlist.h new file mode 100644 index 0000000..48ea089 --- /dev/null +++ b/Lab7/xlist.h @@ -0,0 +1,81 @@ +//## begin module.cm preserve=no +// %X% %Q% %Z% %W% +//## end module.cm + +//## begin module.cp preserve=no +//## end module.cp + +//## Module: XList; Pseudo Package specification +//## Subsystem: lab7 +//## Source file: H:\kurs\avC++\lab7\XList.h + +#ifndef XList_h +#define XList_h 1 + +//## begin module.additionalIncludes preserve=no +//## end module.additionalIncludes + +//## begin module.includes preserve=yes +//## end module.includes + +//## begin module.additionalDeclarations preserve=yes +//## end module.additionalDeclarations + + +//## Class: XList; Parameterized Class +//## Category: lab7 +//## Subsystem: lab7 +//## Persistence: Transient +//## Cardinality/Multiplicity: n + +template +class XList +{ + //## begin XList.initialDeclarations preserve=yes + //## end XList.initialDeclarations + + public: + //## Constructors (generated) + XList(); + + //## Destructor (generated) + ~XList(); + + + //## Other Operations (specified) + //## Operation: add%940854125 + void add (T element); + + // Additional Public Declarations + //## begin XList.public preserve=yes + //## end XList.public + + protected: + // Additional Protected Declarations + //## begin XList.protected preserve=yes + //## end XList.protected + + private: + // Additional Private Declarations + //## begin XList.private preserve=yes + //## end XList.private + + private: //## implementation + // Additional Implementation Declarations + //## begin XList.implementation preserve=yes + //## end XList.implementation + +}; + +//## begin XList.postscript preserve=yes +//## end XList.postscript + +// Parameterized Class XList + + + +//## begin module.epilog preserve=yes +//## end module.epilog + + +#endif