A GRAPHICAL USER INTERFACl<J FOR C A D PROGRAMS
© X i LlJ
Sllldil':'inpnrtinlfulfilhuenrofIh,- n'quin' IlI(' IlISfor I Ill' dl'l-!:l"l'('pi
MasterIlfSdt'llC<'
Dcpnr rnn-nt "f C'Il11 Plll"!"Sd" lw!'
~.1l'lllll l'i li lL;ni\'l'Tsit \""f.,\ ,·\\·f" lllid lalill
(kl l ,lll'l '!!I!j,·,
Sr•John's "f'\ \·r'lI lh, l)aw J
...
NlItoOOallJbra 'Y crcaoecaAcquisilioosand DibllcJgrarnc5ctviccsBi'anch
"'--
~~a-.,
Direcl~desacquiSillOOSet des SCIVICeSbibliog raptiQUes
...
~-~~I
The author has granted an irrevocable non-exclusive licence allowing the Nati onal Libraryof
Can ad a to reprodu ce, loan,
distribute or sell copies of his/herthesisbyany mean s and in any form orformat, making thisthesisavailable toInterested persons.Theau thor retain sownersh ipof thecopyri ghtin his/her thesis.
Neithe rthethesisnorsubstantial extracts fromitmaybeprintedor otherwise rep rodu ced without his/herpermission.
L'aut eur a
eccorce
unelicence irrevocable at non excl usive permettanta
la Biblictheque nationale du Canada de reproduJre,pret er,distribuer ou vendredes co piesdesathese
de quelqu e manlere et sous quelqueformeque ce solt pour mettredes exem pfaire s decette thesea
1a dispo sit ion des personn estnteressees.
L'auteur conservelaproprietedu droit d'auteur qui protege sa these. Ni18these nldes extraits substant iels de cell e-ci ne doivent iHre imprlmes ou autrement reproduits sans son autorisation.
ISBN0-612·17616·9
Canada
Abs tra ct
"III!' aimIIfrhis,pfllj,·(·!i:-.II! outliue1111'Ib;ip;n andirupleuuuitnticnof).!;I'nphieal liS"!"illtr·l f;Il"'·'~for")lgiJH" 'rillgHudSl"lPlIlili,:"Olllpll!l' r-aidpddf'SiguInn is.Gruphicul illll'l'! i w".", ;11'-'plil"illlp" "l ;1111fors"plJistkatn li'>llfl\\' an' lOu islwnlllsl 'tlll'\sjlllpli~v IIll' liS"
.,r,
Ill' ,oolsandn',[ lw('tIll'11'al'l1illJ.\ph'I.""'..\Ill,,) p l'l l \'Ij('Si/!;IWd11:-;('1"iUII'rfH('I'"gulfl,-,":IIIS('rth pJUgh rll!'ill!P!'1wlio ll SWillifll'sign to o ls .dl'arlyinuu-n ringthe'
,It-sig nrI,-/-isi"lI l'>lImlsnppl.\'iugall Tl·J<oVilUIiufnnuariou whlr-h is/idpflllillIllakiu!l, III" M' d,o,-isi" " .",,
:\ l':wbJ,!,"forJ,!;ra phk alpn-ea-ntutinnund umuipulurionofunnn-rh-nln'SlIlrsh, d('s iglll',1awlilll p !l' Ull' 111l'dfor,'xisl iugnltIl Jlllt l'l"aid!'tldl~i/.:ILpro/.:rHlIlSSI'Il'I:: -I': \C ,11111 FIT.nil'hnph-nn-uturiouis hm;I'douthcAtlu-na widW·tSI'tunderrhr-XWiudow
l'lu-Jill'!Illll [" lo/.:~',1,'wlt11,,',1duringthisIln Jj el 't isapplicabletilIllllll~'othertools.
n~lul'illp,tlu-ir ,I,·\',·I"pllll·JjIlilil"nutI Silll]llirdJIj.!:till'liSt·of,1,·\'('lop,'dprugrums.
A ckno wl e d g m ents
1'00ISTrlll ' liwSllg).:"t'stit li ISa llllc' lIII IlISi ns m,
1,1111gratl'flllllll!U'0"]l;]rI 1l11'111 'If (', nllpI1 1I'r:-i,·i.'IIlTfor[>1"l ,\ ' i.lilll:1111'environ- IIU'111for111.\'\l.S I',pl·tl~nlll l ,alldIwuuhllila-hithank1I1l'S.\'Sll' lIIM11'1'''r1:-I,l lr1;11 alllllt'ir1ll'1])atld<I:-s ist m ll""rb.uIlll'l~kd.IHl'ill).:111.\ 'workUIIthispr"j "l"'
Contents
l luLroc!m:tioll
J.I GraphinilCSl'rhll('rhwl '~.
1.:\ TheHcquirt-meut I.l TJu,Ob.il'l'lh'l'.
J.1.1 [)('liig-llilll!aGra]lhil~ll lBnrk EndPadQlj.(t·
I.,I.:? Suuulurdizingtil,'lut,('l'fa,"'. 1.-1.:1Hi~1lLevr-lPunuueu-ri-m.icu I.·l.-! TIH' Wjdj.\l'tSet .
1.·\.5 Blli l,lilLg-all Applirntion 1';, OverviewofTlu-sis
2 XWind uw Syst.em andProgram mi ngWith X 2.1 TIH'X\\'illduwS,vsTt'llJ
2.\.1 ('olll\Hlm'lLt:<oftill'XwindowS,\"::ilCIJI :!.l.2 X TO\llkit
:!.l.:i WidW'1 Sets. .
iii
10 12
:2.1..1 Client.SPIn-I',DislJla.\·andSnwll :2.1.:) X\\'iW!<lWl'nlll'I'pts :2.l. G \\'iudu\\" ;"lall ngn
.) 'J C:raphil'-Csnhlll'r fa l'pOlljl'l'l1'j \\'idg l'.S
2,2,1 X and Olljl'l,tOri"Il[I'dl'w grallllllillJ.!:.
" 'J'J \\'idA!'tCUlwe p ts :2,:2.:3 AtILt 'WI \\'idJ.!;l'IS_ :2.:2.-1 Tlw
XI
Arhcnn \\'idAt·.e1iISSTn 'l'3 TheDesign ofCrn ph icu lInte rfaces
;j.t Gra llhk llll11tnfar t'[or CAD '("tmls :1.2 SP1CE·P:\C.
a.a
FIT:.LI Dut.linooftill'Graphit'JlI11l1"' l"fm ~( '. a.5 DesignGlIiddilwsforUra phim l lutcrfures a.G Ocsig-uiul-\Xt Applk at iollS,
a.7
Del:iiJ.!;1lPrecess:3.7,1 ViewpointAnal.vl:iis,_ 3.7.2 ldellt.ifri ll).(~l ail lFunet.lnns.
:3.7.:j Stfllldanlb:iu).(thl'11l Ie l"fl\\~ I'. :3.7.'1 C]wosiu).(tlu~Wid l-\t ~ 1.S 3.7.5 GeneralHt~ [ ll i rl'lI lt ~lI ts
4 Bu ilding theInter face 1.1 Applic at iu llH'~sot1rn~ !:i1~tlillJ.!;
1:1
"
I(i
!Ii I!l tn
2·1
:!Ij
:!7
:11 :1:2
I,I,I HI~JIln~I'~
1.1.2 lips / m In 'Fih'
11.:1 11"Mlll1T"Spl'l~ilil ·1I 1iIJIISvntax 1,1.·1 H'osl"lln'!JnlalmS"
1.1.' , TIll'I{I'S" lIf/"r'FiJI'forFITandSI )JC~:'P..\C 1.1 I\pplkilli ollStI'JWlll]"l'
Ii Sysll'lIIImph-meutut.lou
".1 I'up up \\' i1rllill!l:S
,), J,I \\'i,l).!.l'lIliPI'a rd l.\" fIn I'opIII'\\'ilt'l li ll;!:S.
',. J.1 Wi, I).!.I'Iiun-rur-rionsIor thl'POll II]!\\'lll'llillj{,~
'1.2 1'''1' upFill,St~'l iull
;,,1.1 Fill'Menu .
;,,:2,1 S!T(\ l lt~1LiSTS 'l,:!.:1 Fill'SnndDiret'tnries
'1.,1 DisplnrSl'l'Iiol1
~1 . ,I. 1 Displuv ,\11'1111 ,
;IA.:! DntuFill,s.
;1.1.:1 Gl'Hp h il's Coutexr.
:1.1.-1 ('rt'1I1Lllj{Cmphu'ulHcpr csenrnt ions. 5.,1.5 'li'/U'I'S
[...I,n Corupnrisons of Results.
·12 II .t.J ,l{' .J;
·18
51 :il ::il
;j1 ,j;j
;j., ,j;j
GO
til 61 6(j
(il;
6;
G7 70
;j••j Clllllp,l iUI-iandBlIll1l ill ~tlu- l'r",..:-nlill.
6 Conclusions
Bibliog ra phy
ApP(>ndicm;
7·1
List of Figures
FiJ.!,.J.1,\~talldilnl[;1.\,lIUluftln-Gel.
Fig-.I.:!. :\ Silllpkl'XlIUlP!r'.
Fip;.:!.l.Hl'Iat.inll:'ihipbetweencorupoucnts oftlu-X WindowIIr st CIIl.. 11
Vi ~ _~.:!.CHI'IlI,Sl'f Vl' f ,displn.\'and1'1'rl'1'1Iill X. la
Fi~.2.: J.A1..\"pi':111XWindowhierarchy, 15
Fil-!:.:?A.Ahstrnet.dataI.~·l)l'class hlerarrhv. 18
Fil{.2/1. XjAr.Jumnwid/(d das.<;tree. 21
Fi,l.!;.3.1. 11It,I'Tlu'l.inll withnGUI. 25
Fip;.:1.2.~ll\il1structure of1111'h'TllJlhic'aliut.I'rfiwt'. 28
l'ip..;L t~~ovontpro rl's siull. 31
FiI1..:U...\simpk-exampleofthoX evcru loop. :~2
Fip;.:U,.xlulu('OIllJHllll!lLb;
or
thegrnphienlpnl'kngc. 33 Fi,L!;.:I.G.Mainouupononts!IfdieDisplaypart .. 3.}Fip;.:J.i.OSF/~I()tifst.d('GUI.. 38
FiV;.a .s. l\dnpll'dstrll'of GUI. 39
FiA.·Ll. Hcsouu-r-example.. ,13
vii
Fi~A.:!.HpSOUn 'l'SlH'fiHl'lI t illllsvn r nxillresourcefiles. lli Fig-A,:.!,:\ Inunuonr oftht'l"l'Sl lll rt'l 'iii,'forFIT, l~1
Fig..I..I.;\Pll1k ilti olletrurtnn- ,.,1)
Fig-.5.!.Hicrnn-hy ofwid/l:t,ts fur11 POP-UIJwnruingltll'SS:lgP ,',:.'
Fi/l:.5.:.!.\\'id~t , tintonu-riousfornpop·IIPwurnlnglJl<'ssagl'. ,-,:\
Fil-\".5.3. SP1CE-1':\ Cwit.h awHrn illl-: ll1t'SSHII;I' .
r,
IFi ~.GA.Witl!-\d hiem rrltyfortill'FI1,..Emenu.
r ,, ',
!"iV;.5.5.\Vid l:(diun-raet ionsuurl ('allhm'ksforthl 'FlU:1111'1111 r,li
Fil-\".5.G.FIT wit ht.llI'FILEtueuupnJlpl'd lip. ;,S
Fig .5.i.FITwith
u.o
FILE menunulla sa\'('wafn ill)..:lIlt'S.~ll)..:l·pup p l~1lip. r,DFig.5.8 .S[")ICEPACwithIIiiiI'luadl'd,. IiI)
Fig .5,U.lutenu-tiouofG Ulallil!,hl'npplie.at.iuusofrwafl'. Iil
Fig ,ri.lO,FIT wit hthe DISt'L AVmenuPOPpl!(! lip. li:l
Fig .ri.I!.\Vitll!:l'thtcnuchvfill'till'D[~PLAYun-nu. li'l
Fig.5.I2,Wid J;l'tiuteruetiou1I1l11t~il Jl h lU:ksfortill' DISPL AY1Ilt'1I1l. (i!", Fig ,,).I :.!,FIT witht.IJl~DISPLAYmeuupUP lJt~1liP fnr DCHilalysi s ,. nx 1,' ij.!;.5.1'1.FIT Wit.h tlU'DISPLAY11l1~ 1I 1lalltll.lwTrtACr. pOPIMlup . f;~' Fig.5,Hi.fiTwithDI~PLAYuu-uuamiac:o lllp ar isollorn'sll11.spllPI'I~1lip. 7U
viii
Chapter 1
Introduction
1.1 Graphical User Int er fa ces
1)111' tiltln-~nl\\' ill J.\l,, ' plila r it.\' uud nvailabilitv ofounpnn-rs.'·~ II (Ti all.\·personnl,:0]11- 11l11"ls. usnintl'r lill't':,>lin'111 '('oll1i ll l-; ill('l"('ll.-;il1l-:1.\'importunrillnlan,\'upplirurlons.
SillC'l' I Ill' 11Sl'1" illl. n ra(·(· orusvstcmisnnt'llOJ]!,ofrlu-tuuinfeatureswhichdon-nuiue
IIll'l1Sl{ l lll ll 'S." (Ifas11ftwnn':-;.\'SI" 11l.J.(fal,hil'alinn-rfuo-s<In' lH'n m li l lK a "stnndard'' Iorworksratioue,alJlllll'I~Ul fllt>llItlplllc'I'S.\'stl'lllS.
lis"l'illlt'rf:l('l'liwhic hn-lvonwiudu\\'s. killik(pk lorilll) ll'pn'sl'UI.lltioll,-;nfenti- li"H.pull-downOfpUp-1IpIIll'II11Samipoiunug devin's1\1"('nowenlledl/IYtflhimlII.'!!"
/lIlr',f l/,.,..<(Gt!ls) ,'['lll'ran'dli\rm :tt'ri1.,~l l):-· :
I.~1 1 1l1ill]" wjinlowsnll.lwi uj.!;,lifr"l'('lll Iuformutinn10be ,li:;pl n,\'I'(1»imultnneouslv
,'U l lll'l1SI' r'ss<'!"!'(' [1.
~.1",lnit'iufonuution n'lm's.'llla lioll,
:1. COllllllaJulsr-lo-tiouviamenusruther thanneoumnmd lang uag e.
l..\llPill till,I!;,I,,\'k,'lawllns nlIMIlS"fllf11Iakill j.:.sd".'I ('" ISfroruaIllt'll'l"I'indi- I'HTillJ.: Hllin-mof iutr-rcsrillawludow.
G/Ylph im i I1S/'I'il/f,'/jun',.,~i1ttplil:\'usimrIIt.'svsu-ru: tlu-v:111 <111'IIll'lIs,'rI"'w,;II,\' switch Imm '11]('tasktnauorherHswell as 1.1intern..1 with 111<'1II'I,lil'ati"lI l, n' grams
1.2 X Window System
TIll' X\YilldowSvsn-ruisliltilldlls l r~'stan dard s"f!Will'"s,\'1'<11'1I\Iorgl'ill' ltiL'alill'l'li .'nl inll l'< ,(lUI' <If till'1l11~~I.iltlj,of t lllllf.'nll ll'l '1'< "fXil'<Itsuniqrn-,!t-\'i l""l w!<'\I<'II,I"1l1
nrrhirrcrurc.Xallows prograllls1,1 displa,\'lnfuruuuiou ,·<lllla ill illj.:.11':-:1allil j.:.ral' lt lt's nnnnvl!ar(I\ \';I W c!I' \'i r.'1]la ISlljljJ<II'lS l ll<'Xl'I'<,'tll', ,11\'illl'''11IllIu lir\'iu J,:,1"""IIII ,il- iUI-(,.11'1'"lillkillJ.:rlu-nppllentkur. This111'\' [1'1 'illl iqll'IIII"III'I ' ,ail lll).:.II'i l,1!X's1",slll' 1Il astln-illd lls tl'rstatll iani.allowsX-ln""11al' l'li.'a l ill lls1.0fuue-tiouill1II'II'I~+).:."I1I""IS
"1I\'iW1UIl"1ITl<I'llllSistiu!l of mnlnfrsunes.workstut.ions.:lll.ll"'rs,,md1"'IIIPllt l'f,~
X prnl'i.lI,sIIpowerfulphufurtuthata]I<lw,~1)('Ilgrlllllllll 'I':o;11111,'vI,I"11s'I)ll l i:o;I1l';[II' 11 userum-rfaecs.purtnbh-tilBU,\'sy~I"1llIItalsn !' p,,]'tsX, X is],aSl'"1111aI""ll ,,,.'k lHlllspan:nldil'llt -SI:I' VI'I'uxulel. TIll'Xsr'rvcrl']'J'al l':';11,,1lIl;[u il'll!al'':'wir" I,,\\'s ill WSpOIlSl'10 requestsImm..tit'ttIS,alt.l s.'urls"VI'II I S10 ltol.if.1'di l'U1.s
"r
usn input01 dla n!!:I' illIIwindow'sst all" Clil·lll.~<:om,'Xl'l'n l ,'lHI\'wllt'l't' ''1\a»r-rwork.lIlakitlJ.',:\allill,'a!base fordisl rihutl'll Hpp!il:lllillllS,
X d.wsnotsupportlillyparliclllllriutorfue-SlS]I',and.~t r i vl 'sIIIIll'I'fllj"y -f r". ', Applientlons an'fn'l' IIIliS"tIll'X prillliliv,:s 1",l,'lilt<:Ilt,'i(',,\1'111.J'1"·"f1I~ ' rittl,·('fan 's,
"lid, "..XIIlIlnll"w,.\)"111"T,\lliI'lIa
1.:1 T/o" Rcq ulr-ement
So'\"I'I,,1'''' 1l1'1I1''T-Hid,~1,I....IJW...,hwa rt·'" " b11:,\1'1" ~'11,1,·,·..I"p.~1withourH,-xi!.I,' 1I....·rlu...,fa .·'....F'1l,':>'; ;011I 1,1" SI' ICE-I '.-\ Ci..a,·"Jh~·I I"l1'IfI""",'I~''·"lIplo'll ..ill m lali"u
;'l'l'linl""11H"I\',·n·!".it,I."...11,,1illdl ilk11I1'"11]1111 111,,<11111-:allllTlll11'Tkall"l'l'oults
'·a l'" I,ilil i,·... ..Ill'll,I.."'1111 1';01'1111: WSll[r.."f,lilf,'1'!'w Tlln..."Tllrill):.llud'·:>.; TnIl'Ii uJ.:l"l~l1hs
FITi....alliIl1o'"u' lin·P'''~I':II11f"r,'xlr;...1iun "f.I,·,'in'\lIlTa lll,'II'tsfliT!;I'J('!::-Jik,' .·in'lIil ..illl"l al"rs.IIisI~':'>I'II"11as-in-nit..iuruluturt~l'lt'EI'.\ l'lra t her11t;1I1 <Ill '·:>.;I,II,·i'...·1uftu...I.'1'·'lm....'ll...'I-Ill'FITpro' l:.nUIIII.." """"'III.l l ml [,...Hili,...ImlIllt'r an'i"ll"xlhl,':HI':rlilI...rill..utlirn-ut "1.::1;11,aL::nlphin,1 had H '11I1iJ'-111'1'<:\1'<.1 for FIT
1.4 T he Object.ive
lln-main "hj'1'l in'ufIhisprtlj'-"li..III,ksiJ.:llandilllp)"1I11'1I1II1)1II'k;\~1'forJ.(r aplJ.
h-ulIIn-S"ll lati oll.uulnmuipul.ulnnof[uutuerh'nl] l'l-sn\t:;rOTSPICE-PACull<.l1"[1' 1""I-:'-illl1...,\high[,,"c·lllfpuruuu-tcrjznrionistilhI'attl'lIlpl l' t!ttlprovidet1cxihiJit~'
"I",Ill'p;1f"ka~,'.Asilllpl,'i"""'fll'li\'l'userillt t'rfa,','istnlit,pro\'idl'tlforrdi tlt'lllt'lits :U"llll:l1Iip lllmi" lI"<lftlu'p:ra jlhi,...,
1.4.1 De si gnin g aGraphicalBack-EndP,\("ka~l'
lhc X·wilHlnw~,\":';l\'tnb10Ill'lISi'11furunplementuuouora~ra phi'";III I :ld'-"lId1';1<'1,·
agl',Sill\'"Xdi"lll san '"\,"1I1-llri HlI . 1111'L'..\l.1l'r<l~ralll,~11<""\a,litt','n'1I1l1I'J,:;mi /ati"II, 111111'1'suitnbb-forr-vour-d nvon nlllll',,1
l)P,~j~ll illll:;1.c:raphkalh:wk'\' Il,1llil('kaJ,:1'"l1"" llll ';I"iS(',~Ilin'";lS1H','\S;ill'pli"alh lll How.1:1\'(1111!Hllil',\",;ltlll n'lIs lnU ' l i"n 1,1"b,t-lIIll'rSla lll!ingti ll'applir-atiunHow;11111 Si'lt~' lil)1l 1, f"'1I1 11l<1111 '1l1Sstu-ha,~1Il,'Wls,ronuuundluutons.I'll,isIII"lirsl,,1"1' "['n
Ihi ~";11.. ",i:- 1" llSi'1111' ..\,I"'I,aII'i,Ip:"lSi'I,
1.4.2 Stnnd a rdiaing thelntc rfa co
Stillll lfmlizi llj.\"TIll'usr-riun-rfnrehns[Wl lI,1'ad \,;1ll 1;1 V.I'~ 'IIprtl \'i dl'~['Il Il~ is'['111pn 'v,ra m
Fin.l.IshoWsanunrliuo[Iftheruniui1111,l i l' illi' lIlwiu.low IIIIH,~rln-Qi lil1"III,' n;
tIll'Fill'nu'nnwhn-hl'oll taillssllh llll't1ll~pr!l l' itl ill l1,st.[I·('Ii"I1Sr"I'lulU/w", ,,1/11/11,/, /u'ill f in,/nud,~lIlJill,f/lilt'S:tlll'An aly si s1ll1'1I11wilh sul l!lll't1l1sforS/, l f:Ntltltll!I'''''~'1"1'1' IIIl111IJ'~!"~,alit! soUII;tilt'Dis p laytuouu('~1II1aill ill~it111;,1"1-\llisll lil,\'Willirlllll'1i"ll sr"l m;Jlli p ll lat,ill l-\'~mJlhil~fliSJllJlr~,Till!fli~ll[;',\"an'ai~ ll~I'dtill' I-!;l'al'hi n d I'Il' s t'lllalj" l1!If
1.4.3 HighLevelParumet erfz at.ion
Hi~IJlevelofparametc r ixar.ion1I1t',\IIS thai.tln-IIs" r~-uu<;1'1rt'~"ll1'I'f'SIIIrw , illlal ll syste mwid!'consis tcucvlu,t\\,,'t:lJ ll\1pJitntilJ lls.C~l'r~I'm,dJitl l g P1111' laVf,1I1"I'Will
Fi/;;,I ,I,,\srnndunllnvout.oftill'Glil.
d"II'~,uu.difvwmdowsiz,';lUI!sl,vll',dm ll ).!;1' Ill('foregroundam i backgroundcolorsOf
""iI"'1HIonIwhichSI'I'IllS10In'tilt'llIoStrt'IlI!llb],',Obvionsly,tlu-lISl'rs eun nulyens-
t"lIl izl'llll' ,\1Ill' 1I;1lIpplinl lillllsforIhosl' nOSll1lrt'I'Swhichnrc 1I0t ]Uln!-,:odrl!within
TllI'p'OIl'I'livl'hasil'\\ 'I1\'Stolil't ]'I'SOUH'!'vnlnes:fourof1111'111111'1'external to the 1"" '/!;1'Illll":
I,InOJliSP!n~Jlln'I'iii,',whirl! is 11 text fi]rrontnining rr-sonrco-scuiugcorunmm ls.
III adass II'SOll n'l 'lilt'.anotherIt'xlfill' r-outaiuingres ou rce-set ting COIlllUatllb.
1" 11 1111':'1'l'lII1lIlHlU,[Sappl\ 'toum-ilpp]ir'atiolJdas,,; lHlI.\",
:1.ln tlu-U8S0IlUCELM:IN..IGEH/1Il1/wrl!JofIhl' mol window,
I.IIIronuuuud-Iim-pnr1ll1l1'll'f"I/llSSl'dto thl'program.
SPICEapplkatiolls;
spice-labelString; spice-width: spiceehe f g h t:
SPICE-P ACMAIN MENU 200
225
Thistilt'can In'phll'l'llillllll~'Ill't.lu'n-sunn-r-HlI'ItWHt illllS sUi'll asIIlJ,IlHf('1oJ... . FillHll~"1ll1,<::lmuisIlL'iforind ividualwid J.!;l'ISan' nlS\1dl'wltl]ll"l.
1.4 .4 TheWidgetSet.
\\' helld(" 'doll i l1~ali upplicntlou.itisruuve-uient I"IWI'I'l;bn u'il'S"fl"lIlint·.~111 :11 providetypil:lllfunctionsforl.Jll~appjirut.inn.III litis,'asp,thl'..Hlrl'lIil\\'i dgl'lSI'I is used.developedcoucurreutlvwiththeX WiuduwsyNI"lll,TIll',\,.IIl'lIa\VidhdSdi.~
int endedtoprovideset. of t.rpif:fllinterfncet'Olll pUlll'UI,S,
th eAt ht'WI set:
•()1W rri(ISlwUWid!JI~ I.Cl'I.~.~fill"pop-ups.
•BoxW ifl!ldClwlSforlayout.llllUlall;t:lJjl'llI..
•ListWid.lJdCl(l.'l.~for the pop-upoptionSdl'ltilJlllist..
• G'ol/lrrumdWid.IJf~t.Cl'J,'sfor11lltl.HIlsundIIlt'lI11paw'S.
• "'wIdJ~'d l\l;"'I,'I ('I"",.fur-,11"li"I.1"J1 lt,\',
1.4,!i Bniltlillg<111 Applicaf.ion
l.. buildallallplit'ali" u,tlll'prull.l'al linl't~ lliIIIlopd("1 IHl P(J~I'dinto';I'\','mlpans.
'I'll ,· "I"lIl-,[ l'i\'('1)or,l.1,lIuizati"tJ]](. 'r l:;III l)t' imph-rur-uterl:Ill..app!it'atiollresoun-e- galllt' l'illl( Ill",'hallilitll1II"flsrnh.,d('~ip;tlf'f l:tln-appli<'ati oll:-;trUC 'IlU'1'11(~'fI~toIlt' huilf:III!' Ii0PLIpwarllillll.~,\'stf'1l1lJ("' 11stilII<' ..rt':\t('{l:fIll'popv upHh- IIIt'lIl1svsn-m Jll', ', b tuIll 'n'",~t nl<'l"rluurllit.'.li~pla,\'window1l('('d~toh.,Ih~siAIll'd.
FigI.:!i,.,;rSilllllll'illllsl rat irmufS(Jlil""lqHlhiJitic',,; (Jf till' Crrlphkn lHm-kEllrl
1.5 Overview of Thesis
This111I'Sis is(Jrp,::Hlizl'l lillfjI'h;l]!tf' rsmillIIsed. ".,ufap pendices.
('h;\plr'l''2rl"SI'l'il ", stil<'f!'HIlm'Sofrill'Xwindow svstein.basil'!:OlWl'p lSof ohjc'f:t.
't1' i"lLt(~ lI H" I).:Tl1tll1llil l ).:'111((1 ,111'wi.l).:'l't.St'!,Ch a p!!'r: JIle~'wrillffit.11I' ideaoftln-graphi- r-nlIIsprlU' t·,.fll!'l'dc'siJ,!;lI ill<:;r Piltl'rdcr.nil.elmp!,'r,Idisellssl'sthe X window resou rces
;ltU I IIIl'I'n'n'ss "fIlIliltlillf(tilt,IUl,'rf,wt· lnyo u t foranupptknr.lou.Clmptor5 discussc, 1111'iml'lc'IIII'I II:ll io lloflit" g;n lpltinll userinn-rfuec. Chapter Gprl'SI'llt:-;anumber of l',"ll, IIlS i,llISrL' I:tI.~1I.,thislll'l lj l'f'l,
I
/
x"
;:
I'
,
Chapter 2
X Window System and Programming With X
2.1 The X W indow System
2.1.1 Co m po neutsoftheX WindowSy stem
TIll' XWind u wS,\'Stl'lIl1l111'faft'Swith1\bit·ltmpll1'fl graphk--d ispln)'tornnunl.This t.V]lI'of!l'I"lllillillnllnwsI,ltd,jlJ(lividu !\lllixdOllthe screentobe access e dandused hi clb l,IIl.l'a sJl!'dlic'('Olnforsh ad('ofgruy,The pixelsarcthebasic:dem entsused to nUll'll TlII'l.:rl\l, lIi l'alilIIllW'Sout.llI' !;lTCI'll.
Counmrnk-ntioulll't\\,(,I'UanX Window-basedappli c ation[calleditdielll)anda hi!lllaPPI'(I /.:'r1Illhic'-clb pllWtcrmumlisuccmuplixhedthrougha sp odal soft warcealll'd till'
.r
.~I·I'!NT.'1'111'Xr-lb-ntmnkosrequeststo theX servertorec eiveinp utfrumthe n'rtuiual'smOllS!'orkcvtoardami topr r nluceout putOIlthe ter minal'sscreen. The .\~I'n·.'r i~11 rrue~l'r\'\'rprogrtunill thosensetluuitac t snilallint..mrcri'inry fornll~'l'lil'lllappliratiouI.'ml wauts to 11....'IlL\'resoum-IlfII.I::fIlp h i,'.,lispla )." It'T11IiuaL ('OUlt llIlUK-a t io u lwt wt't, u11.1'('IiI'!LI~1.Il\1Ihl 'M'TYl'ti...;U'I"IIll\,lb,lw dlI,;ill ~a1'\'I,'i;ll counnnuk-anonIIlt' t illMIn.lIl, l l)u'X"""11"",Thispn1llwnli...alll'lwtlrklrml." \liU" lll prolllt 'U!thati...1Il;('l1ttl St'lIlldOllII b'fI\1, ' UX1'li l' UI s11.11\1 all Xser ver.Th n >1l~hIII,'
Xpro tO(,'l!.all Xdienr"lIIlSI.'lIti tI'l:ILll'l'ir :-IIIfill.'"i'>\'r",rrl.llLll ill ~nil:111.1""lIl1pllll 'r ('IJJLlII't~t l'( 1101111'IIrh"ITk;l lll ll'lIllSl 'its nu tputsnmlill]lll lsi"IN'!<I'lllI" au.1r'~";\"l.. 1 frumiUWtenniualtowhis-h Iltalservr'r b'"(llLn., 'II"!.
Fnuu t.lll' X clientapplit'ntillll dt'\l'lol ll't's11IIiu Inrvie-w,till'Xprllh w,, 1;s;111- pICllll'!ltL'f1ns asedl'!!ofImll/UlI,fI':IlimJi/l.{J'~orfUlll'I;""slihrar;l'S, TIll' liI'rar.\"Ih,,1 iUlllll'llll'l1tsrheXprotos-olfurtill'Cpro~rallLlILill~hllljl,ll11j.!,"israll!'11-,"fill,Fijl,.:!.1 showsth l'relntionshlplu-twrenth l'variouspnn sof1111' X\\'i lldllw:<.\·SI I 'III,
Xliiit~(lll ln L lI:< IlI'ntl~':lnllfnLlrtiUlls!tII'n'lIh' ,111"\'1',rl~izl',1'1I11'k .1lI111111'S1my\\' LI1"
rlll WS;10dmwHill'S,1t'l:tall~II'S,arl'li,aml11I11",,:." lIs ;til11.""funIS,t·..lnrl1llIIO:;,1l.r.l I,lli,' illlllj.,'T'S,andMII'Snrs;lludtU l'XI 'l'1U .';,wiele-vaTil,t~,nfnlhl'rlIlll'Tli l io/ls.
,\ScanhC'Sl'C1Iill~'i~,2.1,till'XIihrat).'is lIut IIll'1!II1.\'lillr;lrythat.isIh...·.111I1'fT'al.' lUIX \\'in do'"diclit"'IJpl k atit lll,PTl~rlllllllliIJ/;\whhuul.\'XliiihilS111'('11rfllllparnl1.I ' prOloTolu lI lIiuKillau/W;CllI h\ I'rIn u J,tHaJ.:I'.OUl'rail~('tIIII'),i1" if'ta,,,ksl...n'llll'lisllf~1ill XHh,IJllttheamouut
or
1:0111'Il(!("(h 'dIIIprmhln'asiull,ll'willll..\\,witIIsl'lll "l.':'ll"n thescreen1:IlUamount.toILI1ILlI Tl~)surliues .U('l' IULSl'nrUlis,MIt.I.lwr,hij.!,lll'r.I<,\,!,I , lihraryis oftenusedincombinationwithXlih.2.1.2 X Toolkit
1IJ
Fig.:!.I,HPI"liull shiphel\\·\'I,'1Icomponents ufthe XWindow sys tem.
11
,ml'XIfunctioneallwillrmnslarohi sl'n'ral:\lihfum-tlon,'ails.111f:U'I,t11<'....1,,1'111"
morel'OULIUOlLXtil,{11IU'tHlllSt'qu ,'u,'I'shavotl\l'il'XIhllll'li"li"'llIlvalt' IlI:<. Therelin' hundredsofXtflllll' tioll:-ttlperformlntit'lllXoP" r:lII"US,tt'ronunu- uir-ntciupnt,'W'lIls{/'{I1lIslH~' ifil'WiUl lo\\' s [nn-ktotill'di"lItal'l'lll' nliot!s, lo,j,' al witheventsilltill' l'\1'UIqncm-.tnp"ffol'millh'rdi t'1111111l111l1Ini" nt i"1I.lt1,'n'a t":11I.1
Awidgl'lisHcolleetloun{u \J"or1I11Il'l'wilulo\\' srlunan' laidou linaway 101;'1'111 Hgrap h icsnhj l'et,,\\l'id~('tdefiui tionalsu('\lllta illSast'llit'I'W"I'tl lln 's"I'flllll'li,,"S rhutart' in vokedasartosultUrnSI'"input illtlu-wil lW'l'swludnw.I'IISII1"111"\ 11',1'1'1'11 1 bars . textboxes,1ll1'IlIlS..urddi al o~hox!'san'nilt'XHIIII'I,'Sof \\'idgt'ts.
grums. Cous('llul,lltly,wlll'lIl1sin gXI,11(('applil'lIl io n,I""t'\op"r\\'illllslla ll\'liS' ofS('lmratd~'11('\'dulll~ 1widj!;I'tSrt'ft'rn',\to>IS 11 lIIirf,IJd ''''1..
2.1.3 Widge t Set.s
\\'id f.ll't.SI'I.snn-Si l llpb'colll'(tiullS (Ifgl'all ll in ;Illlj('l·I.:-;thatan 'l'flllll l lllllI",111:UI."(:111 programs.\vid W'r, SI't snre noriudn d"flilltill' X\Villd,,\\'s."sl,I'II1.'1'111'.\' art'avai lnbll' fromAliT(the:\tlll'lIHWid~dSf't.).A1~~T(thl '()I'I'IILnukwil1w 'l set},tlo-0JlI'1i Sojllllll 111Fmm,[rltiml{thoMnrifwid j.\t't st't),andut.her,1('v,'II.pns .
Widg;(~t.setsprovidesimilarImskt.ypl'sofrl1lwt.iollltli1if'S.A1I1I"sl;111wirlJ,!,"1Sf'ls providepushlmtrous, Iflhds,text1>0)(1';.SfTlJlJhnrs.druwiuuawn",IIWIllIS,awl:<I' OIL,Tlll~umiudiffcreueesbetweentllt~widgl~1. ,~t~l.."arl' inI.IJI~Ionuoftln-ir{" "I:IIIIlI
12
Screcn
(scr~cr)
FiJ;,:l.:l.Client,server,displayuudSnl~"11ill X, 2.1.4 Clie nt,Server. Display and Screen
(TclTllinlll)
\Vllt'llI'VI'r Xl"1~f('fstoa displa r.it.lwt uillI r H'fn stnII server . Xust'sthe te rmrli'~Jll(I!J as auothr-rlHIIIW furtht',~I'rVt~r.St'lldilll-l: iufunnntionttladisplll~'tucaus llsillj.(till' X
!'millco!InrIllis rrnnsfcr.
\Vht'III' \'I'rXn{('n; tonscreen,itmealISOJJ('ofthe phys ica lSI:rCCllSon the terminal 1'lUltrolll'llll,\'aSt' rVI'f ,WhelltILt'serverdraws 011thescree u,it. issatisfying"fill X
\I1'1I1o c' ol]TClll l' S t.from SlIllIl'Xelienr.upplh-ationto caliseSOllll'typl~of graphi c,object
IIIaplWlIr Oil 11te-rminalSlTJ't'lJ.Fi~.2,2Hlusun n-s theseconcepts.
,'\~Hill.ill X,11 rlh-nr npplicntionscndsXpro tocolrequestst.otiledispln.\'.In ]'I'S]l"Ul<I',lhl't1is l'la.\'l'U\lSI'Sthegruphie- n serinter face tohe drawn 0111Iscreen. \-V!lell CIll' usorC'lICc'I'Sillforlllilt inJlusinl{ themouse or keyboard,inputeventsar csentfro m IIll'SITPI'Iltiltill'displaylindthedisplaysends theevent stotile appropriateclient npplu-arion.
TIll'r-lh-ntnpplinuiou isr-xcrurod withinanin finite loop,waitiug Iorinp utevent s Fromtill'SI'tl't'II,TIlt'server responds to therequestsfor servicesandpasses t.hcinput
13
events totht' d il'llt",
2.1.5 X Wind owConcept s
Au X windowis art'i'l lllll!:lIlat St'(,titlll,Ira II' nlliua lM' N"t1,,\wind.>wisIld i...II,,·a hUN!I'f, ahad 'l rrtlllll d mlufm I",nm-ru.anX/Y. t,.u tdina h 'ofill'uti~iu,;\ Iwid,l.;111,1
awidth,\\'II(' III'\"'rtill' Xsorvt-rlakt~rontrol
Ilr
apatti"l1larn-nniuul.itiIl SI:,I~I'
slH'('ial wi ndow('alll 'ill lll'"Ollt mimloll" l1Illll'll'fll1iu al:-;I't,'('u.
•\ll.\"11t~Wwindowsi,~iustullrdwirhiurhenltllwindow;L~11 I'h ilolllrlilt'nll,1 Wi l llll' \\
Ear-hl'lIUdtlftherootwindowenu Ill'II siu rph-wind oworII lIIt']'I'(,l1mpll'xwiIIII,,\\, withehildrenofits own,IIIInrt,wiudowscIiSllla,\'c'll tinapnrtir-ulurSlT.'I'lI ill:IIIX
windowappli"l\lioll(mill nhil'rlm:h:,-'asshownill1-'1/-:,2.:1.
AwindowL..:!CtllIl.J1Jalluentl'll as IIdata slnll'llln'withinl.IK'X :-;o' r\'l'l.'I'll,' \.
r-lienrholds all idl'uti fic,t
u r
a,,-, t li"I,I;ltI\'indu\\,,1:.1a sln ll'l.uTt'.'1111'wi...III\\·11"1 ':>11,,1 Itt·',nll.lI~·hC'I"tIllJl'"jsilJll'olltill'l:-tllliu alStTt'C~1lunl ilIIII' r1i"1111o'1blilt'~'t"'r1'1IIIU,'thewiudow.
\\'11('11 theclient""11li'St.-; thatIIwindow1M'lIIaPIM'(I,IIIl','M''tVI' ri~..u''SoIr:nvilll.:
iw;tnwt illus tocall SCIt!.'tRIJhictl' J1tf'Sl"lItal iuH11I1IjJp" arlintill':-;I·rt..·...
However, irthowindow.whkhisadlilllof:-;11111" IILllI'tWill,lll\\' illII ...Ivill. l"w hiC'rll tI:hr. isIll'illl(1IU1J1PI'lI, itwillnot1J/"'lIt1u ' visibll'il:-;l,lrunlilit..pan'II1 ha sI"~ 'II mi\PIK'I1.Ev{'ry1I11n'Sl llrlIfnwindow1I111St hllllull'l'I' dallllvixlbh-bd' ,r,'lin' dlilrl\
windowcanbc'colllevlsibk-.AwindowI';UIbl~11llLJl pl' dillSill'l l II waylImtil will pnrtially or r:lIIul'le'ttdyI1llSc'lm~IItJCJtllC'twind o w011till'S/'rWIl,
l'lIl X:<,y-
..
8
~c."'r"'~W;oolo... ...§W,nd"w ~ ~ ~
. , .
I~
fe'"
(orO. (I III
XWinJ,,,w lltor~,,,hy
l·'i~.~ . a.At.rpk'll XWindow hierarchy.
15
2.1.6 Wind owManag er
TIll'wimlnwluaWl llt'l'isnn illl ihl l't'l1llrsu-t'lr;l1l~'X\\"i lll ltlW S,l"sl"lll ,IIisIII,' WiIUl, '11
IIUltit isliptotill'windowlllall a~"1"pnlg-r.HIIIIIdl','ill,' wll('1"<'uudhownewwindows aroplacedou r.heroor window. T~·pil"llly,windowm:lllagl'rsnlsu gin'userss" n ...
.uldtttoualcoutroltilma llip1l1all'Ihl'windowsOilIIll'SlTI' , 'l1,;1.1<11.;1whl,l,,\\'l1Iilll;!j!." !S allownsers tolIUl\"['inputfll<'lISIrmn0111'IOl'at ioll1011110111<'1',dlallj!.l'tlu-SiZl'"I'11 window.:IIII !movrlnputfocusfromonewindowttlunotlu-r.1>IIlIlYwimlowlllill"I).:."r,,,;
aboallowIIse r:-;IIIdllllJg-I~I,hl'sl.ackill~unh-r,IfrheWil111' 1I\'sonIhI',<;IT""11 I"runkr- sOlliepn-viuuslvhiddenwindow\'isi hl,'<lg;lill.
..\windowmamus-risjust1111111111'1"Xdil'lIl,II'lll'I'I'P!".llli,~,'Iiplltisf!,iV"11SI"','i••1 pri\'i1q.{I'Sthnrnlluwittilinrun-optn-rtaiuXli))l"iLlis and,l,'alwith111"111iun-ruultv.
TIll'wi ndow1I1111111gl'1'USI'Sr.lu-S:UIII' Xl i I.I'all sLhrunnv1I11t!'J'dil'lIld" ,'s.hut11 1Is]\1III,'-is dcvclopelro workwith11spl'l'ilil'widl-:'l'1.S(,t..SII.ittW'Jll'rnl.til!',\ 111"1111 windowmanag eri~111"1'([witht.lwArhenuwi,IW'ls"t. alldun-hlll\.iflllHllill.:"1'is11,'.;,,<1 withtil!'~I\lt i f wi tl~ds"t,
2.2 Graphic-User Interface Objects Widgets
2.2.1 X
an d
Objoct-Ortented Pro g ra mm ingXandAt lwnll uS('rJl!j(~f:t. ru;I~llt,:riproj{l"IUll tltirtg ll'r:ltu iqru'sIIIlJ1'J.\luriZl'HIHII'iIlS."i(y the widget s illaway thatwillIIIHk('thorntuurr-usefnl1,0tIll'1I111'1il'a!.i1l1ld,'vl-I" I", r.
Till: uhjel:t(awidl;et iIItltisr;~,;,!)isaS/'l.'II'Ill'lwl~dllr,~t.lnuranI",I.lllrUl.:111.rrfasil
··l.bwkI".x·· IIwilln'T,'pt:;p'~'ih,'inpms.perfnrru 0lll'ffniolisnILthosl'inputs.alltl 11I,,,I,w,'"' Il l'"1','1;,1,',1'1l1111111~illI"!'~rH'll,~,.,
:\llh"IIJ!,1itill'"I,j"'ISiuXarepn~kfilL(,[",raSpl'l'ifi,' purpose. tlll'1"1'al"l'llflf!k,~
lln-1'1'I 'J!, rauLlllI'r, l,wSII'1Im\"I'III-rr-invem 111('wheel":IJI"l',[ pnlll ',llll,jl"'ISill"l' n"all'dfur1111' Illlls1"0111111011flllH'lilll1S Ill'l,kd ill rvpir-ul programs.
:1. '1'" ",'"1n,1111l'1"'1l1 1,ll'xitynlsofrwun-.
'1" 111"'1til"d" l llalld~(Ift" , lm"sfl'llllifl'III,'uts,sorrwan- S.\'slt'IUshan'IW"OIllI' Ill"n'rutupb-xthnn,'\','1'Ill'fnn" (''''Ill'd al1ywiththp1I1't'flsofI-\raphll'-IISI'f\ll- 1<-rfa,',.",nuddatilhaM's.\'SII'IIIS.Tliis ouuph-xitvruusrIll' eoutroll«!soth atrho ,'" Sl"rs" fl \\"lln'llI:lml!'lIll1J('('"1\11 11('1\l' ]11 In amiuiuuuu.
I. r",'olll rllll ll1"'llslnr SlIflwan'lIIaiul (' IlJllll'('.
TIll' f,'nlllfl'SIIf JIll olijn '!,ori",d"dIJnIfII1I11IU1ill!1 syst emInclude:
•Ilal 1lnhstnu-tiuu
.\ 1I1l1""11"111'1iondenotesIhi'osscur lul clnuurteristicsof allobjectrhntdisriuguish itfromallotln-r kindsofohjl'('!Snudthusprovidenisplydefiur-droncopruul 1"1ll1l, IOlfi,'l'i,relnrivctu lilt'I'l'rsp{,('th'(' of rho viewer.
RighI Oh lllSC
GC" lllc'lrk Dhjcct
---~-
Line sIIsick dl Angle(:!sidedl Triangle\.'Silkell Quad mllglc'st-lsnle'dl ,
...---I
~ ~E"IlIirilll.r;'IL~" SC'C'IC'S", I'<lr;~
Rl'c'filllgk S'llI;II'"
•Eurupsnlmiuu
Eu.upsnlnnoni~till'pmr',':-;'';of hirlilll!:allll",sl',Il·tails"f;111"I'.i'·"lrhut,I"11,'1 r-outributr- toit"I'S~I 'lltialdmnH"Il'rislk",
_11l1ll'l'itall('I'
run- orlu-huvior elofiued ill 0111'(Silll!:lr' illlll'rit:lu('(' )ormon '(tllull.iI'I"iuhr-ri- tlllll·,,)nrlll'rda:-;.<;,'S,
FiJ,;.:.1..1shows<Illinstuuo-nf1I11"hj('t~f(Iffy I'" Slllllll'l'whu-hinll<'ril~:itsOWlll, wal t'(}P~'of alltill' [t'atml'Sof Slrlla!"(slll:h lISsid" lr'lll!:lh)as \l'dlf1,"fl'atllr''SIIf1,\'1'"
jJlIl'Hlldo).!;talll[surh as parallel sidl'S),tJI'"'[lIaclran).!;!,·,allds"
"fl .
Ifan iUJo;ta"n'"f au tllljl·t:tnft.,\"PI').!;l'ollletrit:(Jlljl~l·thnsSllf'dlit:at.lr il m l.I'S.allinstuno-l,fHtI"II,i'·"1"f squan-willillh"rilt.1ll'sauroaurltoucs.l'
2.2.2 WidgetConcep ts
:\ wi.lw'l bau ol.j" ,:t-HUahsl raadatat....]lc~.Itisa«ollcettouofcue 01'mort'X.
wimlowsIH'I,I1,(jI4<'l.lIl~rwithagl~J11 I< ~tl".l'fflras]Jl'd fk looknndIIs.'tof procedures 1ha limplc'u lI'litrd "I'aut."I,,'ratiolls,U,Jth.\tlll'lIaandXthavenbsuuctIla t a types l\\'iIIW'1S)fillawill" varmtyOfllM'flntnrfarr- ohj(oc%thatcuubr-lIsc'(l toncccptinput UfSIIP pIYOll t.PIl Ifuragrnphlc-nserillll'rflwe.
ToIISC'alI'idJ.l;I,t illt.l(l~prognuu.an instaueeofthewtdgo tlim atypeisdefinedas
:1Sf'para!c'OC'C'lIf W rWI'ofallohjC'c,tofthatwldgetdat arvpc.Each Instanc ehasits
"WlI1I1'IJl':mHIC'C'andIlllfpose.wliir hisrOlllplc!tl'lrscpanueand different IroruI'w r.,"
111,111'1"oo-nm-nr«ofthutwidg-C'tI,\'pl'illtill'program.
Ea,'l! wi,ll4f 'lIlf' lflllj..'S toadassof rc'!:ltc'clwicll-\C'lsthut isorganizedintoahic-'ml"cl!,\·.
\\'!Ic'llall illstmwl'ofa\\"idg:"1is rb-tim-d. it iulu-rit s at tr ibutesfrornnllofits parents, j..(nl llflpal"C'llts,1111(1otherluu','slnI"1'o.allthe \\'11.\'up totill'rootof thehierarchy,
2.2. :1 Ath e naWid get s
TIll'wirll-\f'lSIrumtllC'Athenuwidj.\"l'\, set which nre usediiitierimplementutkmoftbe g-ra phil'aI IHu'kcudpll1'k:lgt':
•Simple Wid g e ts .Each{Ifthes ewidgetsperforms11specific Iutnrfacefunction.
TIll',\-an ' siniph:h'''·a lls('thl'Ycannot have widgetchildren-theymay nnlyhe lls('c1asll'll\'I'Sintiel'widgettree.Thesewidgetsdis playinformationorhan dle' asmall umountnfnSf'rinput.
10
Co m m a n d- a push button that.WILC'1ls,'lc't·tt...1.,'aIl Sc-:;asp,'t'iti,'netinnI"
mkr-pI1l(,c'.This wiclg"I'1(,1Illllispla.\·atuulti-Iiueslrillg"til"ahitm:ll1illl a~".
Grip-n rt...-nurglcthut,W!lC'llSl'lpc·lc...I.,·aIlSl'Snll;I"li,,"t" l:lk"l'lm'p
Label - an'l·tallg"h'that marr-onruiu run- urILio n 'lilll'sofn-xtor 11 hitlIlill'
Lis t- alistof text st.rillgS.pn'SI'lIll'clill1"011"r-olumu fllrllwtt hurllIa~'hc' indivirluullyselected. \Vltl']]1111.']c'UlI'1l1is SpIC'I·tl'd ,all 1I1i.";llc'ialt'dur-tiouInk,'s )lllll'c.
Panner - a H'c·tml g"nJlIr:m 'al'Ollulillin;.:a.•l" I,·,.th aimil."I",1II11\·, ...1ill1\\"01
dlnn-nsions.~ntifkatinllof1ll00"'IIIl'UI11111.\'Ill'1'lllltilll l, 'IlSIll".lis,·n 'lc'.
Repeat er-apushbnt ron11m!ll"iAA"rs 1111nl'l i"nntall ilwr,' asill;':n,I.,1\'IIt'11 Sdl'CICt ! .
Scrollbar- art~C:t.all~H]aran'a(,Olililillill!{aIll llml,i.luu.,whenslid alllllj.!,UII "
dimension.rnnses nspl't:ifka,tio llto tnkr- pl:u:c'.Asnllllb a rlliarIll'Ilril' Ill.I"']
honzonrnlly or vertk-ullv.
Simple-thelllls!' c:!assfor mostClfl. lwsi lll l l]ewiclg('ls.11.pl"<lviclc':i1ll't'C'lallj.!,llla l area withIIscttablc mons.'':llt"SIlI"alld adist.ill gll ish(!(IIJll r<l,'l".
• Menus,TheAtlwlIlI widJ.!;('I,set)lmvi,l l'Ssiugt!'[llll Wd11t11l -llil'ra rdliI'HII"'Plip lIud pull (IOWIJlll" IIU S .Then- nfl'tl1H~pdm;sc'.~orSm ""I,j,d.•that.may I"·Ils,'d tobuildmenus.
Sme- theIw,(~c!i\1JS»f alluionn entries.It.mayI,(~ lISl ~ [asIIlll'~1I1l '~II "f.rtel
provideblanksp ace.
20
SmpBSB-I.hi1i1lH'1l11cntrvpruvid<'1ia 1ie!l't,tllhlc eutrv contnluiug11text1it.dllg, :\hill1lapt'HIllit'phll:I~11illt.hr-h-ftHilt!riJ{ht umrgius .
Smel.iuc-.Ihi1iIIlt'll ll l'lI lT,"provides1\11nnselccted entrycoutniuing a separator liue.
•Text Widgets .TIJ(~'Iextwidgf't providesIIwindow that willnllowlUIuppll-
('Ht,jOIltotli1iplilrandl'd i tnlll' or more liul'l>oftext .Opt ionsnrcprovidedto allowtheIl1iC' rttladd srrollbnrs tothewindow,searchfo r a specificstring,and IIHulifrtlu-textillI,ll('buffer.
TIll' Tt'xtwitlgt·t is UllIde npofa number ofcomponents. Themodulnnz a tion uf funr-tionalityisintendedtocusethecustornizntiou.Formostapp lica t ion s.
11ll';\sc'iiT C'xt wicll1:d isJ.\clIl'ml enoughto meetprograiumors'needs. ~lol't·
21
Hoxibilirv,Slll'dal [1'at llrt'S,nrt'x l raflllwri'11ln!ily('allIll';lc lc h'l ll l~';1ll1Ih'llWlItilll-l, aIll'\\'T(~ xt Sc'Ilrt'orTI'xrS illkwill!!c·!.,11'hysllhd nssill~lilt'lextwidl-l,'·l.
•Compositeand const.ra intWidgets.
Box: - this wid}!;Ptllal'~itschildren asti!!htl~'as!los,,,i1,I,' illlI"lH I\' '' l'ln pl' i ll~
Dia log-1111imp!I'IIU'lltlltiollof a t"Ill\ \l ll ll1l.\· llSl'I! inll'rnl'ti'IHwi,11-l,1'1\\"llkh promptsthe user forli\lxiliar~'inputSUe'lln,;IIlilc'IHlIlIl'.
Form-amore sopllistit:al edh\~'\l\ltwid!!t·\. lha\.allowsi!.s,'hil. ln'l1 10sl'.~·if.\' thei rpositions relative tootherr-hildrt-n,or IIIlilt,r~ll!;t'slIf lJlI'[1I1'1n Paned - allows childrenttlln- likdv('rlit'all~'or huri:w\l1nll,\'.Controlslilt'als"
providedtoallow tlu-userI,nd,\'w li ll i c'lillrn'sizc't.lu-ludlvirtnalJ1<l1lt's . Porthole- nllows viewing of a1W\IlHl!:"ddlill! whb-hisasla l'l!;"as, 111'lill'l~l' l tha nitsparent, trpi c:a llynuderI:'mt rol..[;1I';ullwr lI'idp,"t.
lwydi eh'Tnlh.
Viewport-I~OJjSiSfsof11frunu-,onr-or1\\'0sCTullhars, uudallluuorwindow. Thrinnerwindow eaueontulnalll.Jl<'daf,lll,]mt.1II'!'llsIIIIll 'IlisJlhl.yt'd,Tlrisilll ll ' l window isclippedh.\'rhoIrauu- witht.heS1:rollbal's,:o ll t.roll i ll l!:whichSI,.'l.illllof theinner windowis currentlyvisible.
22
2.2.4 The
XI
AthenaWidgetClassTreeFjg.:!....,.~li,'wsf.II'~f}rt;mli~lllif)1Iufdu'X/At/l'~llllt\'j llp;l~1elussTn~I'.This treeshows how widw·l.surr:Ol'g:alli~('llilllnrelnteddnssl'S.whonallinstllller ofIIpart icularwidget
is'·'H ·aJ'~Il Jal.('diutu unOI:I:llrrP IW(~ofn slll·tifkolJjt'l:tintIll'progra m.itinherits
at.l.ril>llll'salillfl'a t-url's fromalltil"\\'idg:r.tdlL';'<;('.~thut appearabove it illthewidg et.
23
Chapter 3
The D e sign of Graphical Interface s
Sever alcomputer-aideddesignHoftwan!tools 11:1\'('111'1'11dl'\'l'lo p('(1whir'hlucklk-xibh- userlnror fuo-s.SPICE- PACandVITan ' two(Ifthem. Silll'l'till'userillll,rfil l"('or11 systemis olrcuthe~'ardSl.kkh.\· whicht.\1l'systemis jwlj.!,l'(1,11Ilt'si hll'.sim pl..mul easy toIlSCiulcrfm:t·isanilllport.a nt aSl11'd oftill'1I,'SitJ;ll.'\11iuu-rfju-r-whit'llis difficulttousc will,lit. best.res ultillnumerous1lS(!r ('lTIlI'S.At.worst.itwillt>lIUS"
tlu- software svstom tolJt~,lis/'anled,irnospl'('tiVl'oritsflllwl,iolJalit.y.
Ahndlydrsigucd interfacecau eauxotltl' liS!']"tomakl'1lI1llI'!'('SSill"." all<lirrita tillg errors.Ifinformation is presentedill11ennfllsillp;or IlIisll'flIliu,L!;way, 1,111' IISNlila)'
misuudcrsmud t.helfWHlJill ,L!;ofall irmuofiufonuatiuu1I1111iuil.ial,l'II Sl'fllll'lIl'!'
"r
unwantedac tions. Fromthispflint.ofview,till'IlSl'rilllf'rfal'f~isallimportant.part
fi r
1\11,\'softwaresystem.
FiA.3. l.Illfl'f;lI'liolJwirhaCUI.
25
3.1 Gra p h ical In t erfa ce for CA D Tools
"\h'Taplli('aliulI'rfm'l' Ior SP 1CE- l',\ l'/F 1T pnw idl':;11hrid~l'lillkill).!;till'usr-rwith aJlJlli nHillll PW )!;t1IllI Swhir l!rnnmak!'Iii I'IIst ' rsllh ll"l'ronfuh-ut. Wit htill'g:rnl'lli ,'al 11!'i1'l"iutl,rfart' user s an'ill('Il Ill\ ll l'h'\'ou lwlofwlmtrlu-ydnantiwllt'll(!lI'Y01..\1.TIll' onnurtzuriouoftill'iurorur-ticuwjtII 11 GUt is showu illFig:.;I,I.
3.2 SPICE-PAC
SPICE-PAClxIIsirunlutinnp.u-ka/!;t· t.hnt isupwar d l,\'l"UlIll' lll ibJI'withIlll'1"'I.ul:11"
Sl'I C ~~2 Gcircui tsslnmhuor.ItalTI 'pl stIlt 'SfHIU'!·i n 'l1i l tlt'1i1Tip l.iu lIImll-i;lIilj.l;l·[wuh ()1I 1~'f\few minor ('X\'!'llti tll lS\ allllpnwhll'srlu-saUll',' in 'llitillllllyS1'SasSI'I(' ]'; ,bm it.alsoSlIP]JOl"t:-Hmnnln-rof('XII' IISitlllSawln-finvuu-utswhichan'Hut.il\'a il ahl,' ill till' orij.{iualSPICEprugr uru. 'I'lu-1l11 ~~till llHlrl flll1llin;'n 'rlC"I'1" '1\1""'11SI' [{ :Eiill,1 SP ICE-PACis,hm\'I!VN,ill111l'irinternalorWlllizat,illlls;SI'ICEisapl'll14ralltwith ono.fixed scqueuo: (If(Jpl'rationswhlh-SPICE-I'ACisar-ullr-r-tiun ofIlI!lsd.\'(~o ll plt ~ 1 siumlntiou"primitives"that('l UIIll' t-omposcrl in uumvt1i1ff'l"I' IlI,ways,asn-quin-rl1,,\' a particula rnpplicatlou.
Thisfk xi hiJit yofSPICE· PACisquite'iurpurtautill"iut,I'j.\I'iIl.l',I"ilp p lif'lIlillJlS, i.r-.i1pplil:a t.iolJsillwhichdecuit,siu LHlat.i llllisI'lJlllbi rll'dwithut.hr-rs"r1 I\'a n 'l.o"ls, forexample.opr.iruizntloulll('t hn tls,srntisricnlunnlvsis.S'ylllllf,Jil:xirnuluf.iun,Ili14ll- ll~yt·l (l~,/-(,.hehuviornl]slurulauon.alldSflIlli.
:U FIT
VI'!"i.~alliuterar-t.iv o program(orr-xr.rnet.ionDf tll-vi':I'pnruruerersforSPICE·likrr-ir- I:tlit~jmlllillllrx.FITisII silllllfatio/l·hasl'dexr ruernr,so explir-lr mudd cflimlilllls1l1...'(1 JiOlt lwknownf~"1111~'yan'pfIJvidl~dby 1.l1I' dn:uitsiunrlutioutoolused. littiugcall hr-I'l'r f"nt ll ~ 1II"!' \Jill)'forsillF(lc:rlC'Vkl'S 1J1l1fllrfuucrlounlhlm:ks Ill"wholeI'irc:uits as \\'1'[1. awl1111'salIII'nxtmrtor1:1111he 1IS(:([ fora varietyofdevices alld/or devil"': tIl,,,h'ls.'I'll"I'xtnwt.nrsupportsnumerir'ulnxwdl as symbolio simulation. so repeated aualyst·sof lilU'ari;wdcin-uit(for fn '{!HI']U'YdomainlULal~'s('sJcall he performedvery (·lIkielll,I.\'usingtln-1i)'lIJIJOlil'functionsI\J'lwmt/:dfromttu-CoatesHowgraphn'pre- Sf,utal,inll oftln-e-in-nlt,Sl'\~'fillupfituizutlonmethodsarebuiltintotill'prognuuto providerobnst. as 1\'1'11 asdlkil~llttittillltofdovin- cluuuetcrtstfcs. Flexibilityis ob- laindlJ.\·sJ)I~:ilkal.iu!lof oxtrartion details in the da taSf't'irutherthanthe oxtructicu 11nll'I~lnn~ .
10'1'1' is iIPral ivl'.sirunlutinn-basodnmlIhlt a_dri vel!.Therlntn-driven l:11plll,ilit,\' allelll'silll e'l-:n lle'r[ parnuu-tt-r extraction)12Jaswellas selective cxtrnetion. pcrfor ruod (Ill slIllsl'lsof11l('a,'iIlI'l'Hli'Ilt.dnt a awlsubsets of panuuetcrs. Differentextraction slrale'J.\i('sr-anIILlLsIll' dl'wlo lll'c!for different types of devicesand / o r theirmodelsill ol'llc'fIIIl'l' rI' lfI LLtill'ext ruction of pnrnmetou,dtidclltly.
3 .4 O ut line of t he Graph ica l Int er face
TIll'~mpltil'11111111'k-t'/l(1padm#o:l' fnl'SPICE-P"\C/FITnllJsisf.'iof fourparts. Fig-,3.2 shows its,l!;t'lll'l'fIlstructure.
Thl'Quitpart is\ISI'<Itn tortuinan- I'Xl'I'utio lLof aILuppllenriou.
27
The ~raph il'alhal'k'l'nd
Fill;.:l.2.;\iaillstrurum-ur,Ill'gl'a llhil'alillTI'r fw· ".
TIl('Editpnrtis pmvid('llt.o mallip llhll l'dntlllilt's : itr-nnl'lll.! afill, fromdilf,' n'lLl
din'l'tnric!;,,'ditaiiII'amisaveorprintalilt'. TIll' .xlitpurr runIli.~liug uishlilt'
Ililfe rl'llt.tlatlltill'S slid!IL~SPICE-PACdatalill's orFIT11111:1Ilk-s.
TIIl~Runpart.I'XI'('Ut,!SrIll'SPICI=:- I'AC/ FITl'wp;nllll S,IHuvi,\I'd'1\;11.Hit,n'·
quircdiupn tallt!oUtP 11t.dat afilrsan'availa l,l,' ,
TI1PDisplay pilr t disp la,\'sdata tTI'nt.''11lIyt.ln-Sl'IC E-I':\C<lllli1,'1'1'flI'"~ratlIS.
Grnphienlresul ts1:1\ 11be[ll'('setlt.l 'l leitherIIsillP;llt' fllll )'pWlw rl.il'SIII"IH1111l'rl, j"sSf' -
leeredby the user [color,linestyle.n-xt.mlurIII'textfOllt.).rk,~III I);runIll'ZlIolIll'd illawlzoome d out ,Thispart. ulsn»HowsI.IIl'11M'IOSrotruer-Slwdrit'OIl1.pU(,vlll'ill lJlt'S, comparet]l('resultsobt.a ined from dillcn-ntIIlIlIl,\'1'I'S, "1.1',
3.5 Design Guidelines for Grap h ica l Interface s
Ouo rcusou whyXtupplimtinns111'"Srls1U:':I'ssf ll ] isthat1,11l',Yfo llo wtil l'~rap r.j "-II,~I ' r illtcrflll:l'desi!\"llp;niddiw's,A shortoverview oftl ll~s l'~ll j , It' li lJ " ~rllJ[ows
Every XIapplk/lfionSIIOUII IIwwrittenilla way t.lmt~IVf'St.1U'11M'!'t.hr-""uu-"Is
JH',,,I"d'-0a':l:IJlUplisIJ11giVl'l1 msk.lJSl~f!iwillha\'('afediTJg of control over au appli- rutlonifit.is eonsistontunrl giVI'Sthem thr nlnlity todiroetlymnnipnlntcthecontrols arid utherUbj l:I'I,Softhe IIJ1plil:atioll,Theupplicationmust alsohe flexibleund allow
•Consiste ncy
CllllSi...,ll'lwy1IIl'allSlhatsimi larl'Olll.rolswill operate ill a similartunnnoram i
IlHVI'siu dlHr "'flds,Ifa Pushbuttonill(HIl'applielltiouhas aLabel nuddieki llg
t.hntbuttonl:atlSl'S IIDinlogljoxto poplip,allrotherapplirntiout.hatnSI~
IIII'I'JIipsbOila pnahhuuou LallI'!shoulddothesallie tiling:, COllsb'-('lW~' aboII11'HU Stb.u t.lu-SIUlH'nctiou willalways pnnhu-ethesuuu-result in mauv differentapphrnt.ions.Ifvon eau click-hold-dragthetid e barof our. npplk-atlou to ruuvr itshu-ntlonOIJtln-scrccn.then1111)' nrhor npplluntiou tha t has11tirh- hnr ollg:ht10 workthe S1Iml'wny.
Allot,hl'!'factorillIllI'consistruu-y of1I11 npplieatlonlsplaccumntofthe user
\'/I l1lrolsiutJ,,' npplirmiun's window,The eOlllrol1'and fmwtiollsthnt nreIIs('d urost ,In('11should11('proseutedfirst. att.hetop oftheapplication.ill a logka l aw l straiM'!Lt.fllrwllnlnrl!l'r.
FUlll'li n ns ,whit-hare nut used frequently,shouldbe hidden1\1ll1only culled lip
•Dtreet manipulation
TIll'\'x ]WriI'1ll1'of directmanipu lat ion is dotiuod as theconne ct ion of a user nr-tlouinauapplh-nrlonwithallobsorvnblc responsefromthe applica tion. lil a
: m
dirert-nsmipulnt ionnsr-riUll'rfiU'I', userswill ('xpl'l'i"Ut'"uwilUllll'llialt' \'lsihh' n\"1I1l1ioftheir 111'Iious,
Immed iate visihlt,n'spllllSPistin-lUllSIitupurtunt:1S]lI'1"Ill"thl'llirt't' lmlll11l'"
ulafion\' X]Il'l'i" Jl('\', TIll'pl'rfoflll Il1Wt'11fl1]IIt'lll.'illfslowlurnlwau-nr ,IfIlthll prognuudt's il-:IIlindhnplenn-nruthnrruu lllakl'itc1illiC'll hfur11 llSl'fto ,'0111'1'11- trnre1111r.hotusk for which tli('Xap plk lllin lli.'illi'il'll.NomalIN11,,\\,intr-r ...~lill~
allapp lil:al.iOll lll a,\'look, ifitlsslowillilsnpr'rutiun,itwillhi'ptm-tir-nlly1I.'i( ' I, 's,~
tornsrmuers .
•Flex ib ilty
EarllXt nppllrutionslumldIH'HI'xihll'with1"1'."11('1'1,IIIIIll'waylilt'IISI'r1'lll II 'SI'S to internetwithtill'1IlJplil'lIl iullnudlll'xiilll'illaJlo\\'i ll~I,it..IlSl'rIII"llIlli!:lIn' IL"pCI:ts of thl'npplicatluu tolit.his ]Jt'l'.'illU alpn'fNI'w·C's.
All Xtnpplirntinn shouldprovidemon-thanIlllt'WilY111).!;l'laI,as k11l"1·CIIIII,lililll'll . Sllthr-1IS1~rI:audlo oSl'till'11I1't.IIOdthnt.is11I0sl,"IJllvl'nil' lItIIIhim. :\ll.'it' r maypniutWil1'1ISh13l1t,t o ll(IllII:'\1t'lluUar,liS!'II1'lIl1do\\'1I,,1I'IIII,"r1il·1,'('1
11Pushb utt on to ('ailS!'SOIllI'1Il'l,io llI,ll!.ilkl' pln!'l'. 1I11\\'I' vf'1". inmldil io nf"
llsiu l-:thr-UIC )lJ S\~topostamenu,till'aplllil'a1.illn1'1111alsodl'lilll' a 11l'v1"'IHd
«naractcr
thatwillpostt.lwl' ullljown alltli1W,UII'!'dll1riWl "rIIIlWlival.,· ,I",Ik~ircdoption.
AusershouldalsoIll!l!ivl'llsutur-aJ110 111l1. or(:tJll1.rolIOV"]" Ill"vixnnlal'pt'lI riH Wl' ofhisap p lk llt.iollS.No!.all l]SI'rsIlk« 11liJ,: hr..llllll'(ITpinkIm.:k AJ"I IIIIHI;sun..'IISt' lS maypreferI-;m yPn~h13IIHoIIS,whih-01IWTIlSl'n;lIIaylikl',".'il·" il'hllSin;,l!'ad
"r
Labels 011their huttuuwidJ.((~r.s,I~I.I ' :\0
EvemqUCUl'
M"vin~fllcmflll_'iI' url'lil'kinl: mUlIsrbuttons
arcX l'I'enl s
:J icn f pfllgrllm
XIMliinLIHlp Evem handtcr
I
xCunli~ureJo:,'enll 1XCrus singE ventll'.xl,li,'it""lIln,li,.,aninrpcmuuris.-;Il('f(11' Tluls"11ll{'ratiouswithintIll'npplk-ntinn
IIlilt,helon-MII'iuJ.!,TIll'dHlIlJ.\I'S, 1'I' llh l\'I'afik-.or:111,\'nthr-rsim ila rnrtlou thouser
~l l"llldlu-~il'l'lLadlalll'('TonTollsidn thr-nr-riou.IIIsin-h('iISl'S,aDialo~Boxshoulrl
p"pupIIIrequin-11e.mfinnurinn'II't» .liSIHisstIll'artion.
3.6 D esigning Xt Applications
.\ \\'illd,,\\' ilPl' linlli tlll S 11]'1'cvont-drivenIIWv;rall1S,Thestructureof aneveut-duvcu 1'11I!-:I';Jmt-uu11('I'n'SI'lll,~1as a[oopwitha("liS"SI1'11l't.Ul'r>illit.III pa{'!Loxccutionof III"1(\1'1',:111r-venrisfetrln-d Iuuutl1l'eventquruoandusedforselectionof1111ac t ion.
\. PH 'lIl"nn-tlu-hnsir-nu'nns(If1'llllLlllllllit'atiolllJl'twf'I' 1iausorundall npplh-atlon.
.\I'W IlISan'1:l'lll'l':II I'd:l,~ilresultof IISl'!'inputfrom till' keyboard or the mouse.as
31
en'nllulIpl) {
XNl'xt EnmliIheUislll ay,&lhcE n'lltl:
swilh (IhcEn'nl.l,·pc) { ca set-:XPCl1iC:
!'rU('CS.S1\'hCIIWindulI'ist'XllllsclI nreak:
case:lI11tlllnl·res.~ :
t'rocess whenkc~'wasIl~ssed;
hrcak:
euse:Ke.\'press:
I'ruces.s whclIwlndnwiS I'xlWsccI;
hr e:lk:
Fig:,:S.·1.:\ silllpl\'r-xmuph-
Dr
IIH'X1'\'l'1I1100lpWIlC'1lIlll eventis r!'cd\'I'!1IWllladit'llT.,t.lu-Xsr'rvvrstun'sit illall ('1'('lIl'1Ul'((('.
Elicitelieutapplicnrion hasirs OWlll'VC'1l1 qllelll'lIlhohll.Ill'c'\'I'1I1sill 11(1'lirsl-ill/ til'SI- Ollr/FIFO )order.Wlu'llthe clicutnpplirutionlI('I'Ib;IInextinput."\'1'111fl'OllifIn-
llllcll'XI'(:ll tl 'i;thowilldow-sJledtit:('<l(h~furthix('VI'IILAltlds I'Oill1.,l.ln-Bpp lil'atio n-
XC'liew,applicat ioupnumuns an'1'\'I'lltdriven t.lu-van 'llrgalli:oo;t'll:,,'; iulill 111' loops,waililll-\ forinputI'VPll! S. amiI~XI~I:lltilll-\aetlonsl'orn'sporlllilll-\1,0l.hl'S""V"IIl.S.
asshownillFig:.J..t,
3.7 D esign Process
TIll' first staW'ill estnblishitu; aSysl.(!lll dat aIlowisto fUllnul a1.\'a 11Iodc'ltJfI,h"
'calworld"cnmieswhichan~ fl~pr'!S('ntl~dilltill'system.
Fil-\".:Uj. ;"·Iainr'otuponeuts ofthe~raphicntpackage.
:~.7.1 ViewpointAnalysis
WIU'1lfUrlllll!atiul-\"n svsn-rnmmlel.viewpoint. httlwt.lIrinl; isauimportant stlll-\"I' whu-h impllSlosilslnwtnTf'lUIt.he ident ifiedviewpointclusters and representsthis illa view- puiutsuuetun-diugrum.Fig,;t5shows t.1I1'tuniueomponcuts of the gruphiualback- ('u,1pllrknllP millFiJ.:.a.ushowsIhl' maincotupoucntsoftheDisplaypurr,
a.7.2 Id en tifying Main Functi on s
TIll' next s1o'1l ofthe buildingprocessistoidentifythefunctions.Thedescriptions nfmulufllllt'fi.\Ilswhichsupporttholayout ofa GUlnlld the cor respondingcallback flllWtlllllSan'nsfollo ws:
•Jo'lI11dioll:CIll'l"kFilt'Typl'o
b[/lIII: Pathnul!nnnu'ol thc tile,
33
O'llput.'Ty)J{'or11U'fih~ ,
IJt'.w riTlt i ,m:Cllf'l:kFill~TYI)('returnsau iudicntiouEXEUl:TABLr::.DIREel'ORY nrxfJll MA I.fih-.ImSl',j 011till'typf'"f tlll'file returnc.thytlll'stat()function ThisfunctioniS S.\'Stf'lIIflq ll'/l!h'llt.
• I';mdirm: ViIlFild.isl..
"1/11//: Fill, lislIhatholds till'1H1I1Il'S.Dir Jistthat holds subdirectory nmur-s, LilI",1wi ,l~el,tha tholdseurrcurpa t llll1lllWandCur rentwhich isr.horurrent flirl~·tctr."paf.lmauu-,
IJ,..,r:r ip/if JII: Fills illtlu-diH~:I.or~·and thefilelis t s withtheumuesoftho
<Iin~:lnrif'salit!IiII'sill a~i"I'1Jclirt,(·tor.r(Current},TheLahd widgct isupdate d IIItln-l'u n /'111pa t.ll1lll ulf'.
• I·'ww /iml :(,hilll l~I'-l'nPanmt.
IlIl'ul:! ' ath llalllt'. (JIII/IIII:NfllIf'.
J),·,.ai/dill/!:ChiUl/:I'Sthepathuarueto tIll' lmn' llt's pathname: for example,it dlHn/:I's ''/c1irl/dir2/ dira/''ro~/dir1 /dir21".
• Flllld;ol/:lJirCillllmf'k,
III/uri:Wid).:f'!.CIiI'UI(lata mulListdat a,
Uf',.nil/fiU/I:Load s t.Jj('tilt'silla!W\\'dir('('wry.
•FUll d ioll :CI'IClIlTI'1lIDin'I'rl1ry.
IlIflil /:Purluueno.
OutlllJt:X lll ll'
U".~",.if!fi (m:<;t'tCllrn'ut Oin'('t" r.rtillstill'pnlhllilllll'with1111'e-um-ntIli l"~'ll'I'Y uu na-.III"wiru"j'"fortho rootdin-r-rurrto imlil'Hll'11Iallun-.II'Slll"'l~sfll l.il apll!'llib"/"tnrln-pnthuann-.
•FllI u:l irm:HI'mlF itDlIln, Input:The1I1111l1'of tlwnntpu!llk-.
Ou/p lll:None.
D,-sl:I'i,dion: 0PPliSdntafill'nud rr-adstht' datililllo,lim'\'l' llldatatill'S.111- tl'rllwdiat,f'dntufiles ,sin-h;1...11(:Jil,',DCjill'1Ir<'n"al "I!.
•Pum:lif/ /l:HI'Jul
A c
file.1Jqllll:Thr-uaun-of inpurfill'.
()lltpllt: (\()!H '.
D(:,~(:l'if!tif)ll: OlJ'~IlSthl~AG'jil,:1\11\11'I'1I,lstln-rial ,.il l l,III'OIT " 1';I/"ll tli l lJ..!.annys.
•Flludill/l:Crl~atdJi("tl1rr'.
hql1l1: Muxinuuuundnnubuum XnndYl'wmlill at"va[II'o:; "I'til",lisl,[a.\' window.
Dt~sr:l'ipti(l1I: Dlsplny s t.hepllli[Ifsp,~:jl i,~dllllllll :t:fll"![il lj(10till'si;f."Ill'lI11' displnrwindow,det er minest,l ll~rnuxandminvahll'sortil<'lJ;iwlIdal;',lIud
li tld ~thnsnd,' fa:-tuf.
• /o'1J1/I;lio u : Tnu:iuA
JI'I'l l l: \\'i,Il\I'r,CI'IIiUfl' .Cl1!lDli t H.
Ik~'"l"ildirm: CIll'I:bif Illl'Sl'If'("t.' ·11 vnrinhh-is corrcerfortill'currentHllal.\"s is:
if it isI"In'1'1.arnwilll4windowisIIII)lp",1npwit hthel!:rn p lii!'n lrep rt-seuratiou
!Ifn-sults.utlu-rwlsr-aI\'al"lli lll:1II1'~-"m~ 'is displa.\"{'d.
Jo'mwti"n:COlllllil f!' valm '
IlIfllIl : (lrigillXvnlue,originY vnlm-, nmxinuuu X value.maximumYvnhn-.
(1111/1111: f\UlIl'.
JJr.<N i,/fi ,m: Displa .l·stlu-val n .'S
llr
thesnmcoutputvn rinble for dilfl'r l :1II.alml ~'SI's ,
:l.7.a Stau dar d i z ing theInt e rface
TIlf'kk-nlu'hindstnnd a n li1.illl-ttheuseriUI('rflw!'isroprovideits r-onsistenr structu re.
I-'IJ..:.:\.'; sho wstln-OSFjlllorif~1~'I('
o r
tlU'whnlow.:\ s ran heM~'Il,tlu-I't'si;.:.' hunkrsart-Oillin'nun-nuos tframooftilt,window(they nrcphu'erlthen'hytill' (lSF/illulirwindowII11UllIl:l'r ) , IIItln-upper- leftremer thereis abuttonforthe s.rst"lIlJlIl'IIlI ,fullm\',,<1!l.rallix-oubutton,nudI;L~tl.\",alIlin/ m fL.'X button. Below thix'·:-;.\·~l l·lllbur'i~tilt' nw1it"a titllloSpt'l'ifil'"tuonnbar" .Whe n uuite mfW lIItill'!IWIIllhal'i~spl('(·lf·d .aIlll'JIIIwillpulldown lJclll'llthit.The "wo r kspace"willhold
;lliditiounlPOll'liPwindows Ill'lwrlHlpssta tkdisphl~'windows.
37
- ' ,·"", 1
File
i
~.~nl""'~l<"".
~-- -;...
-',- - --- - - -_.- - - - -
-",~ ~(~'"' '''1\1",,,,
--' --- -- -- ---l ---- -- ----.- - - -_., --
fl,',""F.. ""'---- - - -- - - - - - _ ._ .
iiirill' topofthesen~'uHllf[ ln'Ul'atJIitII"ll l l'tll1/~.\':;' l'u llm r"with Qll il.,i,'ilt" HUI' unrlDisp layill' lII:-;. TIlt'"lI'lIrks jJl11"('" furIih-vii -willAis 1I1l' slatic"'HI'OIuurh-rIIll'
l:ilJ Hlhiliri {'s of t!lt'pNll:rmm;t'UUIl'llll l' d ll\'till'itl!prf;1l1'.
whirh an'pWI·idpdfur sitllplif,l'ilil-l:r.lu- dt'vdlljlwl'JlIofiJll.l'lfm"f's.,\lol"<'o\'l'r,du p lira.
3.7.4 Choosi ngtheWidgets
Afterid mlt ir)~ ll/!;themain Iuurtions mul stalu[;,rrliziu l\t!lt·g,ral!hindiul"rrill" ',tlil'
Resize SPICE.PAC(orFIT.S)MAINMENU
«lu i!
I
~'il eI
RooI
Displ ay:--l;,,~':-p-~:n:- -r: r--: ,____ __ __ _____ ___,
r
~~:~~~;~~:~:~~:_;;~~ j : . -~~~~"! - ~:.~ - - - --_ :
---_ ._---- ---- .--- -
W"r1"'r"~" Pnp..pn' ·~:r& c<>nt.o'ner lforl'il, v'rWl nlll
d,opl" y .nllg..·h'cnlr..ult.
Fi~.3.8.Aduptedst.\'lruf GUI.
'!'Ill'Atlnum wii!gelNI'Iis1lS(~1furti ll'implomeutntlonoftheilltrrfaei',TIIt~princi- 1"11['I'm'lIlilf l'il'll~'lillglilt'Atln-na\\'id~I!1SI'T.isthatifisIIl:OllIlJ](lIl1~'l\va il;lhlepublk- ,1'llllniu Nt't while;\Iotjfisarounm'ruial product.
TIll'111'1aih ldt'Sl"fiplio llsIltl ll'widgl'l.S1IN{~1inthisappli cationfollows, Ovcrrtdow td ge tctes s
This widp;1'1b1111ll'lIIlH'roftll1'classSlwl1\\'idgf'tC lm;s, ItiNOIH' oftill'widgets 1'f1l\'ilhlh.,'tlll'Int.rinsirs. Its roleis10overridewindowIIlHmlgt~r. It.isIIsed for t' ri 'a l ingIltl! Hll~.
.FIlt JIIWidgl!tClnss
Thi~lI'illp;i'lisII1l1l'1Ilhl'r ofIll!'l'!m,s0111stl"aiJltWidgctChL~s,Ess entially,it contains [;l,nllliI'lllidl'sthurnn-usufulforiL<;.SClIlblillgthl' iuterfluX',Inthis applicatio n.itis llNl'll fill l'\llllrollillJ.::t1u']lI;\(,(~IIl\'lIt.of willgt'll\with respect to otherwidgets .controlling
'9
rt'si ~illl:oftill'l'!Jilrll"t'1I111lddi:iplnyiuJ.!:rlu-g"nl l' hk nlrcsutts.
BoxWidget Cl a ss
ThiswirlV;l'tis a !lI1'lllhl' roftIll'l'l,l~SC'11ll1l0sil l' \Yidg l'Il '!as s,Itilss islsillrlu-luvout, pllld nv;rnuxtrniurxou itlir-hihln-n:it];IYSII1I'1l1'Ill!hyfillingilltln-rowlirsl,tlu-n l~nlltill\li llg1\0\\'11 ,
ListWirlget Cl a ss
Comma nd W idgctClass
rall h adJuee!mnisIJIforLahdWillp;(, t( 'la:;,-;.11isn "hnuou-Hke"wi,lg"L Lab elWid get Cl a ss
(j n stifi,~l)or11pixmupillIIwindow.It smainllli"isI "provilh'IIHl"S.~lI l-\"\,,,IIll'IIWI'.
(I.is1\s(~ 1illthemeuusnudillI/I(' II11':'SlIW'art-n.
Text W id get Cl a ss
TIll' Te xtwidget.providt,sa wlndowwhich allowsallfll'pli,'ati " n t" dis!,I..,\' ;lIJoi,~lil IlIWorIllnrclinesoft(~X I.OptillllSlUI'provuh-d\IIall1l\l'tlU'USI'I-S1o;,ddSlTolll 'Mttl itswindnw,S(' lIN:1iforII Spl'I'ilil:lilriup;,alld1I1111lifytill'text illr.lu-l'llfrl' r.
3.7. 5 Gene ral Requ ir emen t s
The system1IH'1I11mlllllillsFile,Dis p layan dHUllit./'Ill s.TIll'lih ~disJlla ,van'ais alsocontained illthemainmenu.The fih- eun Ill'vil'w( ~dIL<';well:L-;1~ l j ll~1 1ut.1,1ll'~ur l"
rime.
\\'llf'lIl lwllSl' r dil'k!\Im l il"Qu it hUttllll,1tlilli' Upililtillj!wit hItwarning1Il1'!\.'NI~t·
!\11"\\'S III'.\\'111'11111I'u!\I're-lir-k... lint111~Filetnnron.IIII'IlII'UIIufthl'fill'1II1l111tJ.!;l·r 1'''Ir. Ill' wilh Il1Ill " I)!'>'Load,Save/tndPrint fo rIll'tfllrlllin~npcrarions Oilfill':';.
C;ulI~f'lflltdllsillJ!.lhl·IiI'·III/tilllrll'IIlI./tfll lHo rn e fnt~flillJ{bnr-kto th"IlM'T'ShUIlIP
'1'I11'n' ;m'I\\' ulislsinII" ,mainfil1'I!JI'UII,lilli'lis tforfill'Siuthecurrentc1ifl'f'IUr~', I Ill'••IIll'T lislrlltSIIIKlirc~'I"ri,'!\111l,1"rtit!'«urreut din-ctorv,\\'III'IIt''II'rtill'\lSf'rI'lkk.,
"IIIII"iii..lisl "I' t.\'I HO<; illa lilt,na llll'1\.>;'~lI rn1,1jil,'111mII'.1111'Inlll'luftht, rurrout lilt' Hall'"dlallgl'.>;iHl I IIl~1ial.r-l.\'.WIll'lll'VPTthl'lIsndil:ksou n directorylist.t.heeO/lll'uts tiliii" list,.[m ll)!I'SIII show,hi'!ill'Silltho newdil"I'I:tuT.I'.\\'lll'lltill'Sav ehntronis S,' Ii'I'II'lI,ttu-fih-S,\'sll'lllSIl\'I'Stit"r-urreutHle.alliinwnrnill~IIlt'li/mgt'"An-you sure I"dlalJl-\"Ih,'
fil ,·'r
apIII'1IT",Wh,'nthoIIIWT"'ieks 1>11Load.till'till'S~~II'1llIm ll[Still' Iii"in111.'lil" tlislllayarc';I,\\'Ill' llt.h"ILo;('t1'I10tllSl'SPrhn.thernrrcut fill' bjlrillll'ti.\\"I..,n IIIl'USf't diC'k:;oulilt'Display button,Ihema in meuu ofthe Displa y I".rlsllt. \I'S111' wilhu~ttllI P(Ifrtuumaur]ImtlOlls forditf" Tc'ul1I1l1\1r~,a~rnllJlof
•·..,lllw'r"IIIIlII.,llSfi'rdll"ll'oillj.:.tIl"st~'ll';uulnllo r f"r"71II'hil~;III,n'Sl'ur a[iulIof"'SI1It:- allll :1Sf'1of11111I1Il1!; {liT7.HlIlII ill~th.'l,ic'IU Tc'.Th-n-ab'llis a\1~ITk.>;lm("(~fllrtib"l m;u l!
11..,n'Sn lts,au.l"Hm lllillll ll'IlIIIIIlSfor('ulIIl'arill~tr:;IIIL,ofdilfetclltalllll~'S('s.Whl'lI tht' llSl'Tso·I....·I:o.11 11 11pa Till~T1'Suhs,allulh(~rt1isllla~'window1")11.'1lipttlpresentIhe
~rllllhh'all"l'!\\lIISIlf,l il{I'I't'1l1Hlml.\·S!'s.
Chapter 4
Building the Interface
St!Uj ll~t.heapp!i(' Hti Ulll'l'SOlllTt'Suudhlli Jdi llJ.:III(' il[llllin ll,iollStl'lll'l llfl';\l"t'IIIl' initi alst.epsofd('wltlpilll-(aI!:rnphil' alllSl'1'ilLll'r[al'I', '1'1\1'ru-xt.~'l·lilltl.~IIn,vi d ,·a dt'taill'dfJO's c' riptioll of tll('sPsteps.
4.1 Application Resource Setting
4.1.1 Resources
Ow'ofthe-Il11L~tpuwerfulfl' lII Url'!iofXlis1.111'/l·.~(Jlln·,'mannsp-r,amll",'Uol l"f
tothl'rm-ror-t.n'pn'SI 'llt, lliulI[orrllt'dil'rJl.For(':<1111I111".ifwr-WIIlIl,Iu,.;" 1,til"I,,,,t,fHr the:\I.IWllaLa b el\\'idW~l,\\1!«aushnplvst't11rl!.';flIIITI':\1.;\[01111"'1',h,>wi,II(I'lLnhel, aw lthe resourceIlHllla !{I'l'willperformullnpcnukmswhiehlin,'l'qllin'd III liS"Ill"
n~l ll\i n~ 1fo nt illstrill,L!;swithin thiswid~(·t .
Xcoontmntcfororigin
yconunate>/- - - ---".L---,
: ; '" ]
lIighfit,!ht
!hil;kIlC~~ '-:;;:::========::::;::-"---
Width
Fill; ..\..1.H,'soll n~ I 'f'Xillllpk.
Top shadowcolnr Butt on shadow color
Highlight c;u!nr
Fore groundColor
E:wll widgl'linun .'\j:\lllf'llll lll"Ol-(flUlIha:;at.t.tib n t. l~sllliSodl1tc'<:[wuhitumr ddi uI'
Wlllll'tll l 'Illc'I ' ns[IUl l ltullwhig!'!,
'1'111'wil l!!.I'!dassItl~ ' I1rgalli~I';jall the nvailuhh-wjdg-t~lsintordat!'c1dlls.~I';j.\Vill- t!;.'IS un'1.\TtlI1IJ1,<:1 IOW'llu'rinto theSallll 'classwhcutlw,\·have~Oll](,utrrlburosill
Asshownill Fig ,:!.,), widgl,tshav ecertain1'llI lJ11101latrrlbutes.TheS('attributes lin 'slol"l',1ill,!I,'"Con'"widgd r-luss.which is tln: rootof thewidget dnsst rcc.
\\'!r"III'\'('ralliustnurr-of11purth'ularwhlg!'t.iscreated.it isI1s sod a\ c dwitha COllY '11'allntlril'III"SIhi ll arc'Tl'[a tf'dIII IIII'I\'id~l't cla."~.'rlll'sl'nttrihlltl'S1' 1mlM'dw uged l'illll'r11I'flll'f'Ill'after 1111'\\'idgl'lis C"rI'llh'd; t.h ey rnnalsnbo definedilla~l,,'('i a ltill' [' I{' a ll ,<:[" XII' l"lla ll ,l" rotill'pmg ram.
·13
4.1.2 Resource File
Tln'X 'loolktrnllm\'SIhl 'n'St11\IT" ~»fa w;d.<:,"1III hc'.~lll'I'i1i" 11din"'llrlltIIII'~"lll''''' nl l ll'atrherinn-theprogrumh;nlllll'; I" II" r al,'XI','nl;,111tinn-Fr.un wirhiun n',""III'I'"
fill-.L'l-;l 11~rln-n'~Ol1l"l','fih-1lu-1l~'1'"a ullI'I'nidl' IIII'1t.,r;1ll111,,,,k-anol-Ii~'1,,1'""II'"..t li n'wi d j.(I'l sinanXr \ tll('llilPI·IlJHll111.
SlH't'ifi,'Snrt'Slllll"C'1'nunu-fur n\1'1I 1 ~1'1in~l;llll'" illa111l1'l ic'III<l1"1'!i"1I1al"1 11:11"111,;1
\·,,1111' Iorrlnu \"l'SOll1n'c'.
Tilt,tllll,\'rr-qnin-nu-m fill'tIll' USI'
or
IIn'l-;"lHI 'I'lill i~that """w.~tt'I"""II"L'l-;ill /\a1·I' s. mITI ' IiJI',~i llll ,li lit'sIll"S"III'''''", ,, J,'"f;]Iln'AI';]tll.Hl lli llfll \'i 'h",lIl"I"
ll-xrhilitvillrln-SI'''l'Ilil'mi,,""f !lOSIHII""'S :Iu,1111,'il"\':11111'1'['U'X/..\II ...II:',-li"111;11'1,li
4,1.3 Res ource Spociflcati o uSyntax
LIt'ItliJl!' within11rC'Sn llrl'I'lih-SPI'I'ifil"~11 rl'S"llIT"I'HIlII'f"r11I'HI'IlI'1I11l1iIlSlllll... ·"I a11·;C!J..:..t.a /l:rOlljJofwifll:l't1'i lhalhm'"IJ",Silll'"iuslallt'('nan ....;1~r<HlI '"I' wid!!,,·t:;
thnr1,1'i "Il,L(rotill'NUll"1·las.~.1'"II~rtJll I'"I'wi,I).:,"I:>Ihnt <Illhnvr- 11H'Sill""(1'''' ''11'' '' '
"alla~"""'lHtl'"itln-r ;,~111"'i!it-r-lir-utpr"~ l"alJJIll'a r-lussnfsanll»r. rdal",l pru).!;rallls.
'JII,'"",I " d ,j ' ~ ' I'"i»an",,,IIP'I>"'1'1','ili ,,"ti"l1xhuwJI,,'pnfhthroug htlll' II'id /-:l't iusrlllll'"
'I""1!l;'1 1111,..,1I,.. f"Huw"rl l "gall'I"'I" ~'"IIIiIparrir-uhuwid/-:I'I, ,\MlhoI>JI~·t,'11I1
\11"Ioi"" t:lll'1sllhllbil"'l~ill IIn'soun'r-sllI'dfit"atiol1runIll'scpnrau-dFnunone
I,,/lil
1 1/,,,1,,,,,
awl n"lilin 'sIhal\1'"knowIll!','Xill'r parent ill,..,tall"(' or t'lm;sunuu'nil 11",1" nI"'Ill!'"Xlwl ,.],i h l iuslllJl""('I'dil,..,snann-011thc right.Using1\11 asterisk~"I'aratlll'j""a]l,.,lII"Hl.~I-hi ,trJil/.l/lI'hi,·h alloWS ns to Iudkuro thaian,\'ruuuhcrof wi,lg,'r....111111'III'I",al'1,,'lm "'1l 1111'pnn-utill~tilW'"OJ",~Ias.<;ont.held t und tl]('child
\1,,,1:11',',·'11-das...'III till' right,
l'iw11IS 1tu-tuill nrl'Ml1ll' ,"-sp''' 'ilkal iullisrhe umur-ofIIIl'ros oun'e. TllI'll'S(llIlTl' 11;'1111'i....r" Il"II....lbv11l'"llJll,"ptiow,llI'llitt'S pll1't'.alldtile\'1lhwofthercsouru-. AllY Ii,,,,thm
""'I,rt "
wuhau r-xr-hunmionpninr(!)illII
!,'SOl1TI 'fill'isaconuucntlineund.\ S"Iof ///l H'tI..,,, ·,-I'II [,oSis,'slnhlislJ('dill XTOrl'sol\'l~potr-ntialeoutiir-rshetweell n'~IlIllTI'Spl'l'ilil'a l i" llSwhich;lt l"II '1,1to Nt'l Ill(' S!lU!l'resourceforthesamo widgl't.
I'll,·...." rul,':->rh-u-nulm-whichn'snurr-r-spt','ifil'atinuisrukcniutonccouut iutilt ease ,,]"'""lIlliel"".TIll'followill/-:mIl'Sapplvill ilSO't'lldilll\" order :
I.I'll"l,iITllrdl~·,Iftln- iuxratu-r- allddfls..~IlIl1U\'Sill a resource spctificllt.iou1I1l1N!
11I:lIdl:ldil'lI1Iri,'rard,~',':mf'fI!/ Oftill'line is ignored.
15