Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
30
1.BiBlioteka
możeszrównieżzdecydowaćotym,żewszystkiezostanąskompilowanewformiejednolitejbiblioteki
umieszczonejwjednympliku,niemniejjednakmybędziemysięposługiwaćstandardową,wielopli-
kowąjejwersją.OdpowiedniezarządzanieplikamibibliotekiwTwoimprojekcienietylkobędziegwa-
rantowaćpoprawnąimplementacjęTwoichpomysłów,aletakżewpłynienaostatecznąwielkośćpliku
wynikowego,wzależnościodtego,czyskorzystaszzdynamicznejodmianybiblioteki,czyteżnie.
DoprogramowaniaaplikacjiwxWidgetsmającychgraficznyinterfejsużytkownikanajistotniejsze
dwiezbibliotek,któreskładająsięnacałość.PierwszaznichtowxBase,którajestabsolutniepod-
stawowąiniezbędnąbiblioteką,nawetdlaaplikacjikonsolowych.Towłaśnieonazawierawszystko,
costanowitrzonwszelkichaplikacjipisanychprzyużyciuwxWidgets,awięcwszelkiemechanizmy
służącedoinicjowaniaaplikacjiijejuruchomienia.DrugazbibliotektowxCore,którejzadaniemjest
dostarczeniepodstawowychmechanizmówikontrolekGUI.Zapamiętajjedobrze,niezależniebowiem
odtego,jakichkomponentówwxWidgetsbędzieszużywał,wxBaseiwxCorebędzieszużywaćzawsze.
InnymibibliotekamiskładowymiwxWidgets,związanymizgraficznyminterfejsemużytkownika,
są:wxAdvanceddostarczającazaawansowanychelementówikontrolekinterfejsu,wxGL,którejcelem
jestumożliwienieprogramowaniaOpenGLczyteżwxHTMLudostępniającabogatywachlarznarzędzi
doprogramowaniawykorzystującegonsilnik”HTML(przeglądaniedokumentówHTML,budowa
kontrolekopartychnamechanizmachHTML,uproszczonysystemdrukowaniaiwieleinnych).
Niektórebibliotekiskładowebardzowyspecjalizowane,aichzadaniemjestumożliwieniestoso-
waniabardzozaawansowanychizłożonychkontrolek.NajważniejszeznichtowxRichText(zaawan-
sowanakontrolkatekstowaumożliwiającaformatowanietekstuzapomocąjęzykówHTMLiXML),
wxPropertyGrid(zaawansowanakontrolkazpanelamipreferencji)czyteżwxRibbon(zaawansowany
paseknarzędzi,podobnydoznanegozproduktówOfcefirmyMicrosoft).
SzczególnąbibliotekąjestwxAUI,którazawieraelementyzaawansowanegointerfejsuużytkow-
nikaopartegonasystemiedokowanychpaneliipaskównarzędzi.Jejpraktycznymzastosowaniem
będziemysięjeszczezajmować.
OpróczściślezwiązanychzGUIwxWidgetmatakżebibliotekiskładoweumożliwiająceprogra-
mowanieaplikacjiwykorzystującychróżnetechnologie.Należądonichm.in.wxNet,zktórązwiązane
wszelkieprotokołysieciowe,czyteżwxXMLumożliwiającaprogramowaniezwykorzystaniem
dokumentówXML.
PełnąlistębibliotekskładowychwxWidgetsmożeszzawszeznaleźćwdokumentacjibiblioteki.
Zapytaszzapewne:skądmamwidzieć,któreplikibibliotekibędąmipotrzebne?Nieprzejmujsię,
gdyżzakażdymrazem,gdybędzieszmusiałdołączyćdoprojektunowyplikbiblioteki,poinformuję
Cięotymiwytłumaczę,dlaczegotaksiędzieje.
1.6.
SłowookonwencjachistylukodowaniawwxWidgets
Kryteriapisaniadobregokoduzwykledośćelastyczneizależąnietylkoodśrodowiskaprogra-
mistycznegopracującegozdanymjęzykiemprogramowaniaczyzwiązanegozokreślonąbiblioteką,
aletakżeodkwestiitechnicznychitechnologicznychprodukcjiwydajnegoiłatwegowkonserwacji
kodu,wtymprzedewszystkimwymagańkonkretnychkompilatorówioczywistychteżróżnicmiędzy
implementacjamiC++.Elastycznośćtaobejmujetymwiększyzakres,imwiększejliczbywymagań
zestronydostępnychtechnologiimusisprostać.
TrudnośćwjednoznacznymokreśleniukonwencjiprogramistycznychwprzypadkuwxWidgets
wiążesięzjejwieloplatformowościąidostępnościądlawielujęzykówprogramowaniaikompilato-
rów.Jednakmimotoprzezlatarozwojubiblioteki,atakżedziękiznacznemuzaangażowaniuspołecz-
nościwxWidgets,zostałaopracowananieobligatoryjna(leczjaknajbardziejzalecana)listawskazówek
dotyczącychstyluprogramowaniazbibliotekąwxWidgets.Mimożeniektóreztychwytycznychmogą
wydawaćsięniecozatrzymanewczasie,takistanrzeczyjestkoniecznyzuwaginawymógzachowa-
niazgodnościzjaknajwiększąliczbąśrodowiskprogramistycznychiplatformsystemowych,które
niekoniecznienadążajązaduchemczasu,adlaktórychdostępnajestwxWidgets.Oczywiścieniejest
tościsłąregułą,jeżelijednakchcesztworzyćwieloplatformowy,wpełniprzenośnyiczytelnydlajak
największejgrupyprogramistówkod,miejtonauwadze.