From: Gerard F. <ger...@us...> - 2001-09-16 19:46:55
|
Update of /cvsroot/kuml/kuml/docs/old_ftp/people/darius/wal In directory usw-pr-cvs1:/tmp/cvs-serv24442/people/darius/wal Added Files: wal.dia wal.ps wal.txt Log Message: Checkin of files from project FTP site. --- NEW FILE --- ~çã,Ô²?¤ãi¶»ðée:vï¹éÂøÃ¨,óÏúââQ£·µ«b4l6 OW|û~4,¯ß}lú%èî?C-ñ!¢Ä_FÓÑûq¶ü£IÙZäC È÷t7fÓ5ojñó®gC.ÖMly̦'}q±â/ÆéCVÌÄý§ûE²âªðøÝýhï»9¾ÈßÿwvYÎæð_~Óë÷Þ88È~pÀ^eç<NrÞ _ÿ5ùô,?½æ¬~áG¸Í_Jß:(1TÕTNõÓY>E«¿ÿTvá<\³Oò-¯å+Bô1\ñ¯ú\RB¹ÜíÙ8»ywEoFÕ *{[ÕÜÖ&ÖJ ô:]]«¥*î~ ¶ão±äw½î?Fa~?}ÙÍ3ÿ»`÷Å"˽ú=ßü/.j½ Vb¬Ä4QD$îs!ÂtYIWDK¯ÁÒÿáu;º·Í&õ¥ %&²òJK,µìÄ÷÷ãt:]¡µ,Xk%Jhæß3#zW$ܬ·^¾}oâ:VººÂ9&>ö¶ÒFåu¾EV^K")î[÷ëïQaWJß»/¥]·ZÞêáînol:}÷øÁ´ñ¹1ÓÒVTñó%é_¿oñè»òÄͰòÎËà»ñãÀÅ¥ùÆ@þz³å`¾!8XÐ/*øp dW¯b4ËwÈ&w7³ @ÅfÎLHÚh3 Í6³mFÓf¤$TÐd¢e*6mÆË·òµô ÒÊêJBVÑy3í¦´¹VÅî 6óC¾j c6î3 ù*_f8èp1üÿî¢éaZ]ôÿcö±\üg¤aBúÜ®dD;øW0ãwäJN#}Å|ÒJÕ7dFìúÃ},×ÅK¯q½ 7áïãràÿ»fÓ/¯ÜßÝðøC>yþÚìãßçwÅÈAL=Ë&,ebq2ÛéÌNxóâ9»õm¾Hª?¾j<ºÜdÏûø-6çìÞ¤ÅUöCzùsz²ÞðÃZõ 5o^Zeiôþ4Õù\|K¤ Î|9ñúÝ+ûM»)mìëàHS9uÇ$Iжàüáß;ïyí¬{d͵×åð¾Ç*!RQ^¿xn¢§¡|Ekù0Î}NÕN/§ËFèºÜnJuÙ#,p."þË_ÿ|ÌÊÞ7L ¢%wo^ÐÄcCôS"1I-£ÝºiBUÕKÌ<uüJ»)mTfíüKôS´Ü«Fª«¯"³-¨'ËÛúóDwP±²Ïzà#^]ñlyÝè[Mi£"Ëø:Ì©5qtø»Yçи©¬Í·¦3^úvÜaYl½uÒ9¯¥[Á}í|±¬PD ]iÛÌfc=[8!bc¯VÏnb)c÷ اQÀg:%g·-}Ø©ÂÃ0 ^/Ëü Õ 2¿ ú@}BÕgo:^áÏÓ$WäÓ½Ð+@®8÷]/x @ â ânâ$vÝ HqrH×N<Å~Z°²ð¬<!Qá$©è\/_ÏåsÜ)³£õçFgÍ´Ñóf6¶`Í5íÜ Í@À2íö1n$HU#U °X¬ #¬þ2m¦³'C8ÔóR^7]3 ÊUæ# 'ÀSþ*P(OÑOHa2DÈm( ¤%=~Òµ°wrÒÅÓô×wj3#O½Bzé!¤á#ÂGzÊôQ¢>¤ ?Þ<!ZØÙ {ùv._WE'$a¼fj$Dâíft䡸+âÅcUBqâx§Åáà#¿u±ÛèßÙÊh\Gã!¯"+"ØÁ8#ZU§Á$~¿ô #*©n±k0åõ»êñwPã8A§1ûrpO¥õ¶B0ð3ËQ6Y`?]¸q±¬Þ_ì%¿Ì'§7>[ðáó«½ët2g¾¹ÓwsÞûôéËsµð¬ø}ÉÅ/.üFÏ¢IC5I#¯ pfÚYÙ(³#0Iãc+|jIîÁ$ÕþLÒ¶ÙZhªT9c1±mRj"¥0^¾³jþöwdVíNÛÂ(§Ô<0Yܸ4P*¢z[Ûª ³ÜÞ,e¨Yò½%O×,¢u-nlf¨e|µ ÷èf¹Õ@åÁ¥ØYÒ`³d0.ØìÑ5e.¾â3ùÖjÊᦺ#åî2ºY6O©q 5kSþòÝr7[ ³ìÌ,´Ë=zKv°fÉ\0fÄS³¤ÂwÆ03³ìÀ[Æ7K*}DivÈ·<D³d4®]6±¡xxOc# Ô©H\heôl$,ËWBújünÕnJ[×0İÚÛùß`Au¢,(ú7Ú íHòTgC{ =AÚSü õú©O£_t'¸ Î.> ü¡ ÚàÐß@ H±Åß @ P±é¼oàp8ØpÚ7úLà¬olM<.A<ü0'#Õʶ¬"ÉvA1ö(_{^''ÕJÝ/¦Õ6òbüu¨':nc µò@:8hF³xÐA_'ÉD¹+Jûp¹sfÂ'tä M^GGôE&Ý,½plz@:T 45¡« ÔmM C` rè1ô5X 'Ð ô8úôÐãI($¡@AÀ`°h Db¿_(Ðæ@ @è`D"<I¤«·"ICt»«|=oªÝUë7WIIh«ZÍèȼB£dÐèË0,ÃV/ÐèNðNÑèN ®S§æ`Ç[BÎ~c(SËÄ9è3J$g>ñÈQ;ß±(¯ßURó@J¬eëR£wÈÝ,eÀÜrgÌ:÷DßèÂôpõøðléN"#¯ ^Î#Cô;á3ÓTDzBØ+¾ã&h}jDDF¯ØxùÍäÓDº\¦¨ôW81IüÅ~»)mlËÃPAB×.÷cµåùë]ñCMçü?Ö~ì¾Âî«_g÷ÕÅ¡Sg× e8V;Jô,ç lt*e%ß8@ÕüI Òh_lRã@ão®,î0Á8JÇU¤:R RuÉ8áOáV7¼Ja:Ûà&zªÉÉ·¦¿ÒÜ%OðlRã@;̽²Zsæ®Û'»©¿¦ÖÿµûÄr¢kcgJG7öÆ 5©ÃÔóºÈøkúfJ«§rJà¾ÆCùîµÉ-(f~ú¶3-S¥§©/DÌîhT'ÖæY-ÔÄêÇ\ù®©ìýQZy Ê¥/ê§©>Înã ñ¯úÌZ§Ñ{"9ùÏå[ª¯ñ (´¿Â §ñ"µÒÆ% ×êÔwb¾z¬>¼zZ¿èÍêßõ¾ï óÉ©»ë ìý<Éï{÷×iÙM{¾hýënäfæ<gï¬wUþ<+øIy=÷õ«»lZ .27æænZúòËôî&s#&W½éèf4NÝø¼.õFY ܱJíéÌÒÜ*Q;Â=º §!z¾â²3@e$ÔËç Z0¨$ÂïŬî¸+ n¹I¥qVË+x÷0¶ÚêOYv¨]ÚÐRt1¤¢-JoÎó²Ù±rRâܸ®É°n7ðCjÓ 7NCµC6M¨q%ÉÍ;YvèV³F#<²tl´Ø ¦Ä5õ·n 0úw¶ªÆ®X{CwËiÝ¡û¦ÂûªÄnòo±wgçËóig ]c¾Õ8!vXQäç·ïÿ×3Éíj×$×·äPá¼C¸¨ÝÑy&!L$Êk5%ªê@*Në;*¯Çñ+6Sjh·4Uë<«¶õ$¶èn-¬@K´ä@K¼ ìÂÁCË\ÆÚ½s§u J´Vn+çºpn\ÙÚ UÑ8«ï(ê¹5N©y vNiϲ¬ÄÖ%úMÁ¹Á¹á-¨s¥Úq±Wç&Û87ªêvNÔÔý>¤Uä¦i}Géô]8·)5ô{׿D&±ý@M¤ sssÃ[8Pç¦Bun/.ÆéCV|söâb8J¯ôæ³ÿÍaÿ÷þ --- NEW FILE --- %!PS-Adobe-2.0 %%Title: /home/darius/coding/kuml2/darius/windowsystem.dia %%Creator: Dia v0.86 %%CreationDate: Tue Oct 3 15:25:52 2000 %%For: a user %%DocumentPaperSizes: A4 %%Orientation: Landscape %%BeginSetup %%EndSetup %%EndComments %%BeginProlog [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O [...1742 lines suppressed...] ( rect = ?) -30.132300 -297.821000 m gs 1 -1 sc sh gr 0.000000 0.000000 0.000000 srgb ( I don't know what is the equivalent ) -30.132300 -297.021000 m gs 1 -1 sc sh gr 0.000000 0.000000 0.000000 srgb ( gtk class for this. I guess there ) -30.132300 -296.221000 m gs 1 -1 sc sh gr 0.000000 0.000000 0.000000 srgb ( must be sumething similar to QRect) -30.132300 -295.421000 m gs 1 -1 sc sh gr 0.000000 0.000000 0.000000 srgb ( in Qt lib.) -30.132300 -294.621000 m gs 1 -1 sc sh gr 0.000000 0.000000 0.000000 srgb (}) -30.132300 -293.821000 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd [] 0 sd 0 slc 0.000000 0.000000 0.000000 srgb n -20.963500 -299.866000 m -15.092800 -304.692000 l s gr showpage --- NEW FILE --- Window Abstraction Layer Hi, I've thought a bit on how to realize a desktop system independed drawing layer and how much this would cost. My approach is based on the bridge pattern and I don't know if there are better ways to realize plattform independence. You can take a look at ftp://kuml.sourceforge.net/pub/kuml/people/darius for the diagrams I've created. (Its not the latest version as I have problems with scp; The resource seems to be temporarly unavailable) I've used dia for the diagrams as I want to play a little bit with it to get a better impression of its usability. In my opinion its a nice tool with good quality print outs. The dia diagrams looks much better then the argo ones (sorry Jason). There is also a postscript version available for the case dia makes problems. You can see a class Glyph in the diagrams that defines the interface for all drawable elements like classes, lines or text in the document/diagram editor. It defines the operation to paint itself, it knows the bounding rectangle area it needs for painting and it provides an operation for collision detection (when the user clicks on a painted element for instance). There are just three operation declared in class Glyph to keep it simple as this is not really what I want to discuss at the moment. I'm more interested in how the desktop system independence can be handled. By the way, I've taken the name for this class from the book "Design Patterns: Elements of reusable object-oriented software". I don't know if there is a much cooler name out in the world for this type of class. The interface Glyph does only depend on the abstract windowsystem. The plattform specific implementation of the abstract windowsystem is seperated in other classes. As its not trivial to design a complete new windowsystem we may use the Qt design as pattern. That would mean to create for each Qt class we need for our purpose an abstract one with seperated implementation. That would include classes like QWidget, QRect, QEvent and so on. The KDE specific implementation classes could mainly use the corresponding Qt class and just delegate the incoming calls to it. For instance the operation top() in the class Rect that is responsible to return the upper border of a rectangle will be delegated to the top() method defined in the Qt class QRect. I would like to give you an example how the painting will be done by using the Qt framework: QWidget::paintEvent(QPainter *p) [ p->drawLine(QPoint(10,10) QPoint(200,200)); } The QWidget class will receive a paint event and thus the paintEvent method will be called. Within the method the painting will be done by using the given QPainter object that provides functions to draw a line ... ---------------------------------------------------------------- Transfering to an abstract framework the code would look like this: ================================================ Widget::paint(Painter *p) { p->drawLine(Point(10,10), Point(200, 200)); } The abstract Painter class that delegates the incoming calls to the seperated implementation class: ======================================================== Painter::drawLine(Point a, Point b) { imp->drawLineImp(a, b); } KDE/Qt specific implementation for the Painter: =================================== KPainterImp::drawLineImp(Point a, Point b) { // rect is a QRect object rect->drawLine(a.x(), a.y(), b.x(), b.y()); } Gnome specific implementation for the Painter: ================================== GPainterImp::drawLineImp(Point a, Point b) { I don't know how the painting will be done in gnome. I have no idea of the gnome architecture. } |