phonts and tecst

tecst ouutpoot phuncshons

the operating sistenn has cuuite aa pheuu phuncshons phor drauuing tecst in aa deeuiis contecst. the uaireeous tecst ouutpoot phuncshons ar shouun in the taabl belouu.

tecst_ouut drauus tecst at the curent posishon or at aa spesiphiid posishon.
tecst_ouut - ecstended drauus tecst uuith inter-caracter spacings.
tabd_tecst_ouut drauus tecst uuith ennbedded tabs.
drauu_tecst drauus tecst uuithin aa spesiphiid rectangl.
drauu_tecst - ecstended drauus tecst uuithin aa spesiphiid rectangl (ecstended phornn).
graa_string drauus graa tecst uuith aa corlbac.

the nnost connohnlee ioosd ou the tecst ouutpoot phuncshons is the phurst uuun in the taabl - tecst_ouut. the tecst aliinnnent phor aa deeuiis contecst nnaa bee

uuhen the tecst aliinnnent phlag tecstaliinnnentphlag::posishonupdaat is set, the curent posishon is ioosd and updaatd bii aa corl too the phuncshon tecst_ouut.

atribioots that affect tecst

apart phronn the curent phont (too bee discussed shortli) atribioots that aphect the apeerans ou tecst ar shouun in the taabl belouu.

atribioot too set too get
tecst aliinnnent set_tecst_aliinnnent get_tecst_aliinnnent
bacgrouund nnohd set_bacgrouund_nnohd get_bacgrouund_nnohd
bacgrouund culer set_bacgrouund_culer get_bacgrouund_culer
tecst culer set_tecst_culer get_tecst_culer
tecst caracter ecstra set_tecst_caracter_ecstra get_tecst_caracter_ecstra
tecst gustiphication set_tecst_gustiphicaashon


the phuncshon get_stairndard_obgect alouus phor the creeaashon ou the stairndard phonts phound in the eenioonneraashon stairndard_phont. standard phonts include aa phont denohtd bii the identiphiier stairndard_phont::sistenn. this phont is aa proportional phont that is ioosd in sistenn nnenioos, diialog bocses, nnesag bocses and uuindouu tiitl bars. also annongst the stairndard phonts is stairndard_phont::phicsdsistenn. this is aa phicsd-pitch (monspaasd) phont. aa phicsd pitch phont is aa phont in uuhich orl caracters hau ecuual uuidth. aa proportional phont is aa phont in uuhich indiuidual caracters uairee in uuidth.

uuhen aa nioo phont has been selected, the phuncshon get_tecst_nnetrics nnaa bee ioosd too ascertain the hiit and aueraag caracter uuidth ou the phont. phor proportional phonts, the aueraag caracter uuidth is the aueraag uuidth ou caracters in the phont - uuhair indiuidual caracters uairee in uuidth. phor aa phicsd-pitch phont, caracters do not uairee in uuidth so that the aueraag caracter uuidth is the uuidth ou eech caracter in the phont.

tiips ou phonts

uuindouus suports too categories ou phonts: graphics phonts and deeuiis phonts. graphics phonts ar stord on disc; uuhairas, deeuiis phonts ar natiue too the asohseeaated ouutpoot deeuiis. phor ecsannpl, printers hau builtin deeuiis phonts (stord in reed-ohnlee nnennoree ou the deeuiis).

graphics phonts ar eether raster phonts, uector phonts or truetiip phonts. aa raster phont is aa bitnnap phont uuhair eech caracter is stord as aa bitnnap in the phont phiil. raster phonts ar deesiind phor aa particular siis and aspect ratio. raster phonts nnaa bee scaald bii dropping rouus or interpolating rouus - but supher phronn the saann scalabilitee problenns as bitnnaps.

uector phonts ar phonts uuhair the gliphs ou the phonts ar dephiind ioosing ouutliins consisting ou aa series ou points. uector phonts ar scalable uuithouut loss ou preesishon.

troo tiip phonts

truetiip is an ouutliin phont technologi that is suported bii nnanee phont nnanuphacturers. truetiip phonts ar scalable, uector phonts that ioos 'hints' in the phont phiil too phacilitate innproued scaling. the operating sistenn scaals truetiip bii altering the coordinaats that dephiin the ouutliins. truetiip phonts ar suitaabl phor uideo displaas and printers. troo tiip phonts ioos aa sinnpliphied besier spliin algorithm too dephiin the ouutliins.

uuhen aa progrann nnaces ioos ou aa truetiip phont ou aa particular siis, the phont is rasteriisd at that siis. the rasteriisd phont is then cached phor phuture ioos. uuindouus has 13 builtin truetiip phonts:

courier is aa phicsd-pitch phont that ennulates the ouutpoot ou aa typeriitr. times new roman is aa clone ou the times phont, uuhich uuas originorli deesiind phor the newpaaper times ou london. arial is aa clone ou the phont helvetica - uuhich is aa sans seriph phont. aa sans seriph phont is aa phont uuithouut the snnorl turns plaasd at the end ou phont strohcs.

traditionorli, aa phont is spesiphiid bii its tiip phaas naann and its siis. the siis ou aa phont is nneasured in points, uuhair aa point is 1/72 ou an inch. ioosioolee, the tiip phaas siis is nneasured phronn the top ou the ascenders too the botonn ou the descenders.

easy phonts

too gain experience uuith phont selecshon, an ecsannpl ou such is giuen uiia dephiining aa 'sinnpliphied' phont selecshon nnechanisnn. the sinnpliphied nnechanisnn uuill bee repherred too as 'easi phont' selecshon. this sannple demonstraats houu too select aa truetiip phont uuith nnininnal ouerhed in aa nnaner consistent uuith traditional tipographi. too select aa phont, the naann ou the phont, its dinnenshons and its atribioots uuill bee supliid. the suported phont atribioots ar shouun in the eenioonneraashon belouu.

enunn phontatribioot
  bold      = 1,
  italic    = 2,
  underliin = 4,
  striceouut = 8

the declaration ou the nioo phont phuncshon is shouun belouu.

static phont creeaat_phont(deeuiis_contecst deeuiiscontecst,
                         string phaasnaann,
                         int hiit,
                         int uuidth,
                         int atribioots,
                         bool logicalresolooshon)

see also the phul sors cohd listing. the ualioo reeturnd is the hairndl ou the niooli creeaated phont. uuuns reeturnd, the phont nnaa bee selected into aa deeuiis contecst; uuhair, its actiooal dinnenshons nnaa bee cuueereed uiia phuncshon get_tecst_nnetrics or get_ouutliin_tecst_nnetrics. the paranneter phaasnaann (abuu) indicaats the tiip phaas naann ou uuun ou the instorld truetiip phonts. the paranneter hiit spesiphiis the hiit ou the phont in units ou 1/10 ou aa point. ioosioolee, the third paranneter is set too sero or set too bee ecuual too the hiit paranneter; houueuer, aa truetiip phont uuith aa uuiider or narouuer siis nnaa bee creeaated bii seting this paranneter too aa dipherent ualioo. the paranneter uuidth is the 'em-uuidth' ou the phont and it spesiphiis the uuidth ou the phont in points. in tipographi, the letter 'M' is as uuiid as it is hii - hence the term 'em-scuuare' came into beeing. uuhen the em uuidth is ecuual too the em hiit (that is, the point siis ou the phont) the caracter uuidths ar as the phont designer intended.

the phuncshon creeaat_phont creeaats an instans ou the clahs logical_phont, sets its nnennbers, then corls the phuncshon creeaat_phont - indirect.