|
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.
}
|