aet vstroennuyu podderzhku pechati s vyvodom na razlichnye ustrojstva, vklyuchaya:
  • Canon;
  • Lexmark.
  • Photon takzhe soderzhit vidzhet/dialog vybora printera, oblegchaya pechat' iz prilozhenij.

    Menedzher okon Photon

    Dobavlenie Menedzhera okon prevrashchaet Photon v polnofunkcional'nyj nastol'nyj graficheskij interfejs (GUI). Menedzher okon ne yavlyaetsya obyazatel'nym i mozhet otsutstvovat' v bol'shinstve vstroennyh sistem. Menedzher okon pozvolyaet pol'zovatelyam manipulirovat' oknami prilozhenij, izmenyaya ih razmer, peremeshchaya i minimiziruya.

    Menedzher okon ispol'zuet koncepciyu fil'tracii sobytij. On pomeshchaet dopolnitel'nye regiony za regionami prilozhenij, na kotoryh "narisovany" elementy upravleniya oknami. Tak kak vid i povedenie interfejsa opredelyayutsya zamenyaemym Menedzherom okon, to mozhno realizovat' razlichnye vidy pol'zovatel'skih interfejsov.

    Biblioteka vidzhetov

    Photon predlagaet biblioteku komponentov, nazyvaemyh vidzhetami,- ob®ektov, sposobnyh, v osnovnom, avtomaticheski upravlyat' svoim povedeniem bez neposredstvennogo programmirovaniya. V rezul'tate, zavershennoe prilozhenie mozhet byt' bystro sobrano iz vidzhetov, s posleduyushchej privyazkoj C-koda k sootvetstvuyushchim callback-funkciyam vidzhetov. Photon Application Builder (PhAB), kotoryj yavlyaetsya chast'yu sistemy razrabotki Photon, podderzhivaet shirokuyu palitru vidzhetov v vizual'noj srede razrabotki.

    Photon predlagaet shirokij spektr vidzhetov:

    Bazovye vidzhety

    Vidzhet YArlyk (PtLabel)


    fig: i/label.gif


    Dannyj vidzhet ispol'zuetsya v osnovnom dlya otobrazheniya tekstovoj informacii. Vidzhet PtLabel yavlyaetsya nadklassovym dlya vseh tekstovyh vidzhetov, obespechivaya mnogie nastraivaemye atributy (naprimer, shrift, vsplyvayushchie ballony, cveta, bordyur, vyravnivanie, polya i t.d.), kotorye nasleduyutsya vsemi podklassami.

    Vidzhet Knopka (PtButton)


    fig: i/button.gif


    Knopki yavlyayutsya neot®emlemym komponentom lyuboj okonnoj obolochki. Obychno oni imeyut vypuklyj vid, kotoryj pri nazhatii smenyaetsya na utoplennyj, vizual'no otrazhaya vybor knopki. V dopolnenie k vizual'nomu otrazheniyu sostoyaniya, pri vybore knopki avtomaticheski vyzyvaetsya opredelennaya prilozheniem callback-funkciya.

    Vidzhety Tekstovyj vvod (PtText, PtMultiText)


    fig: i/text.gif


    Photon predlagaet dva vidzheta tekstovogo vvoda:

    Vidzhety Knopka s fiksaciej (PtToggleButton, PtOnOffButton)


    fig: i/toggle.gif


    Knopki s fiksaciej otobrazhayut odno iz dvuh vozmozhnyh sostoyanij - vklyucheno ili vyklyucheno. Photon predlagaet dva razlichnyh tipa knopok s fiksaciej s razlichnym vneshnim vidom. Knopki s fiksaciej ispol'zuyutsya dlya otobrazheniya ili vvoda informacii o sostoyanii kakoj-libo komandy ili dejstviya.

    Graficheskie vidzhety (PtArc, PtPixel, PtRectangle, PtLine, PtPolygon, PtEllipse, PtBezier, PtGrid)


    fig: i/graphic.gif


    Photon ne ispytyvaet nedostatka v graficheskih vidzhetah. Sushchestvuyut vidzhety dlya vsego, nachinaya ot prostyh linij i pryamougol'nikov i do slozhnyh mnogosegmentnyh krivyh Bez'e. Graficheskie vidzhety imeyut atributy dlya cvetov, zapolneniya, tolshchiny linij i mnogo drugogo.

    Vidzhet Polosa prokrutki (PtScrollbar)


    fig: i/scrollb.gif


    Dannyj vidzhet ispol'zuetsya dlya prokrutki izobrazheniya v vidimoj oblasti. Polosa prokrutki takzhe ispol'zuetsya v sostave drugih vidzhetov (naprimer, PtList, PtScrollArea) dlya obespecheniya prokrutki.

    Vidzhet Razdelitel' (PtSeparator)


    fig: i/separate.gif


    Dannyj vidzhet ispol'zuetsya dlya razdeleniya dvuh ili bolee oblastej, pridavaya luchshij vneshnij vid. Razdelitel' mozhet byt' nastroen v sootvetstvii s razlichnymi stilyami i vidami.

    Vidzhet Dvizhok (PtSlider)


    fig: i/slider.gif


    Dvizhok otlichaetsya ot polosy prokrutki tem, chto polosa prokrutki opredelyaet interval, v to vremya kak dvizhok zadaet edinstvennoe znachenie. Vidzhet Dvizhok predusmatrivaet bol'shoj spisok nastraivaemyh atributov.

    Vidzhet Tajmer (PtTimer)

    Vidzhet Tajmer sushchestvenno uproshchaet ispol'zovanie tajmera. |tot vidzhet ne otobrazhaetsya vizual'no - on prosto opredelyaet callback-funkciyu, vyzyvaemuyu vsyakij raz pri srabatyvanii tajmera. Prilozhenie mozhet ustanavlivat' znachenie tajmera i, po vyboru, interval povtoreniya.

    Vidzhety Graficheskoe izobrazhenie (PtBitmap, PtLabel, PtButton)


    fig: i/bitmap_cards.gif


    Photon podderzhivaet vse osnovnye formaty graficheskih fajlov, chto pozvolyaet importirovat' izobrazheniya i pokazyvat' ih vnutri vidzhetov. Mnogie vidzhety Photon neposredstvenno podderzhivayut otobrazhenie grafiki - naibolee ispol'zuemymi yavlyayutsya PtButton, dlya sozdaniya panelej knopok, i PtLabel, dlya pokaza izobrazhenij.

    Vidzhet Indikator hoda processa (RtProgress)


    fig: i/progress.gif


    Esli prilozheniyu neobhodimo vypolnit' kakuyu-libo dlitel'nuyu operaciyu (naprimer, zagruzit' fajl), ono mozhet ispol'zovat' indikator hoda processa, chtoby pokazat' pol'zovatelyu, chto proishodit i, chto eshche bolee vazhno, skol'ko eshche vremeni zajmet etot process. Indikator hoda processa mozhet byt' gorizontal'nym ili vertikal'nym i imeet mnogo nastraivaemyh atributov.

    Vidzhet Soobshchenie (PtMessage)


    fig: i/message.gif


    Vsplyvayushchie soobshcheniya i preduprezhdeniya tipichny dlya okonnoj sredy. Photon predusmatrivaet ochen' udobnyj vidzhet dialoga, kotoryj pokazyvaet soobshchenie, i do 3 knopok dlya otveta pol'zovatelya. Imeetsya takzhe poleznaya funkciya vyzova modal'nogo dialoga (PtAskQuestion()), osnovannaya na dannom vidzhete.

    CHislovye vidzhety (PtNumericInteger, PtNumericFloat)


    fig: i/numericfloat.gif


    PtNumericInteger pozvolyaet pol'zovatelyu zadat' celochislennoe znachenie v predelah mezhdu ustanovlennymi minimal'noj i maksimal'noj velichinami. PtNumericFloat pozvolyaet vvesti chislo s plavayushchej tochkoj.

    Vidzhet PtUpDown (strelki vverh/vniz) pozvolyaet pol'zovatelyu uvelichivat' ili umen'shat' chislo na zadannuyu velichinu.

    Vidzhety-kontejnery

    Vidzhety Okno i Piktogramma (PtWindow, PtIcon)


    fig: i/icon.gif


    Okna yavlyayutsya osnovnymi kontejnerami dlya prilozhenij. Osnovnye komponenty pol'zovatel'skogo interfejsa (linejki menyu, linejki instrumentov i t.d.) poyavlyayutsya s vidzhetom Okno. Vidzhet avtomaticheski vypolnyaet vse neobhodimye vzaimodejstviya s Menedzherom okon Photon (PWM) - vam trebuetsya tol'ko zadat' trebuemuyu funkcional'nost'.

    Vidzhety Piktogrammy tesno svyazany s oknami i pokazyvayutsya v papkah Photon Desktop Manager i na paneli zadach PWM.

    Vidzhet Panel' (PtPane)


    fig: i/pane.gif


    Vidzhety Panel' yavlyayutsya prostymi vidzhetami-kontejnerami, kotorye ispol'zuyutsya dlya razmeshcheniya drugih vidzhetov. Hotya on i yavlyaetsya roditel'skim vidzhetom, panel' nikakim obrazom ne upravlyaet dochernimi vidzhetami. Paneli ochen' udobny dlya postroeniya form, obychno vstrechayushchihsya v oknah dialoga.

    Vidzhet Gruppa (PtGroup)


    fig: i/group.gif


    Vidzhet Gruppa - eto ochen' moshchnyj vidzhet, kotoryj upravlyaet geometriej vseh svoih dochernih vidzhetov. On mozhet vyravnivat' vidzhety po gorizontali, po vertikali ili v vide matricy. Gruppa mozhet byt' privyazana k storone lyubogo drugogo kontejnera (naprimer, okna) takim obrazom, chtoby gruppa avtomaticheski izmenyala razmer pri izmenenii razmera okna. Vidzhet Gruppa takzhe predusmatrivaet atributy, kotorye pozvolyayut zadat' neobhodimost' rastyagivaniya dochernih vidzhetov pri uvelichenii razmerov gruppy.

    Vidzhet Oblast' prokrutki (PtScrollArea)


    fig: i/scrolla.gif


    Oblast' prokrutki obespechivaet "okno" prosmotra soderzhimogo kontejnera potencial'no bol'shego razmera. Vy mozhete pomestit' lyuboe kolichestvo vidzhetov vnutr' oblasti prokrutki, i ona avtomaticheski sozdast polosy prokrutki v sluchae, esli vidzhety vyhodyat za granicy vidimoj oblasti. Oblasti prokrutki mogut byt' ispol'zovany dlya sozdaniya okna prosmotra tekstovyh fajlov, tekstovyh redaktorov, prosmotra spiskov i tak dalee.

    Dlya bystroj prokrutki dochernih vidzhetov oblast' prokrutki ispol'zuet apparatnyj blitter (pri uslovii, chto on podderzhivaetsya graficheskim drajverom).

    Vidzhet Fon (PtBkgd)


    fig: i/bkgd_earth.gif


    Dannyj vidzhet pozvolyaet sozdavat' lyuboj fon, nachinaya ot prostogo perehoda cvetov do simmetrichno raspolozhennyh tekstur. Prakticheski lyuboe trebovanie k fonu mozhet byt' udovletvoreno etim vidzhetom.

    Slozhnye vidzhety

    Vidzhety Menyu (PtMenu, PtMenuBar, PtMenuButton)


    fig: i/menu.gif


    Photon predusmatrivaet vse neobhodimoe dlya organizacii menyu. Vidzhet PtMenuBar uproshchaet sozdanie standartnoj linejki menyu. Vidzhet PtMenu obrabatyvaet otobrazhenie vsplyvayushchego menyu, nazhatie-peremeshchenie-otpuskanie (myshi), ukazanie i nazhatie, vvod s klaviatury i vybor punktov menyu. Vidzhet PtMenuButton ispol'zuetsya dlya sozdaniya otdel'nyh punktov menyu.

    Vidzhet Spisok (PtList)


    fig: i/list.gif


    Dannyj vidzhet upravlyaet spiskom elementov. On predusmatrivaet mnogo razlichnyh rezhimov vybora, vklyuchaya edinichnyj vybor, mnozhestvennyj vybor i vybor diapazona. Vidzhet Spisok takzhe podderzhivaet mnogostolbcovye spiski pri ispol'zovanii vidzheta PtDivider.

    Vidzhet Razvorachivaemyj spisok (PtComboBox)


    fig: i/combobox.gif


    Razvorachivaemyj spisok sovmeshchaet vidzhet PtText (dlya vvoda teksta) s knopkoj dlya otobrazheniya vidzheta PtList. Pri vybore pol'zovatelem elementa spiska, vidzhet Tekst avtomaticheski obnovlyaetsya v sootvetstvii s tekushchim vyborom. Razvorachivaemyj spisok ochen' polezen v dlya otobrazheniya spiska v ogranichennom prostranstve. Dialogi i kontejnery zanimayut znachitel'no men'she mesta na ekrane, chto osobenno vazhno dlya vstroennyh prilozhenij.

    Vidzhet Derevo (PtTree)


    fig: i/tree.gif


    Vidzhet Derevo napominaet vidzhet Spisok - oni imeyut obshchih predshestvennikov. Osnovnoe otlichie sostoit v tom, chto vidzhet Derevo pokazyvaet elementy v vide ierarhii. |lementy, nazyvaemye vetvyami, mogut byt' razvernuty ili szhaty; mozhet byt' sozdano lyuboe kolichestvo vetvej. Dlya kazhdoj vetvi mozhno opredelit' svoe unikal'noe graficheskoe izobrazhenie.

    V chislo prilozhenij Photon, ispol'zuyushchih derev'ya, vhodyat: Fajl-Menedzher (pokaz kataloga), PhAB (ierarhiya vidzhetov), vsin (spisok processov) i mnogie drugie.

    Vidzhety Terminal (PtTty, PtTerminal)


    fig: i/ttyterm.gif


    Blagodarya etomu vidzhetu est' vozmozhnost' pomestit' tekstovuyu konsol' v svoe prilozhenie. Vidzhet Terminal sozdaet tekstovyj terminal i upravlyaet im.

    Bolee togo - on obespechivaet polnuyu funkcional'nost' "cut-and-paste" i bystryj vyzov spravki putem vydeleniya teksta vnutri vidzheta.

    Vidzhet Delitel' (PtDivider)


    fig: i/divider.gif


    |tot vidzhet osushchestvlyaet upravlenie dochernimi vidzhetami unikal'nym obrazom. Esli pomestit' dva ili bolee vidzheta vnutr' vidzheta PtDivider, to on avtomaticheski sozdaet nebol'shie razdeliteli mezhdu dochernimi vidzhetami. Peredvigaya eti razdeliteli, pol'zovatel' mozhet izmenyat' razmery dochernih vidzhetov. |to ochen' udobno, v chastnosti, dlya sozdaniya spiskov so stolbcami izmenyaemoj shiriny. Fakticheski, esli pomestit' vidzhet PtDivider vnutr' PtList, eto avtomaticheski prevratit prostoj spisok v spisok s mnozhestvennymi stolbcami izmenyaemoj shiriny.

    Vitzhety Deliteli ne ogranichivayutsya tol'ko etiketkami ili knopkami. Lyuboj vidzhet mozhet byt' pomeshchen vnutr', chtoby sozdavat' ryadom derev'ya s izmenyaemymi razmerami, oblasti prokrutki i tak dalee.

    Vidzhet Trend (RtTrend)


    fig: i/trend_fixed.gif


    Sistemy real'nogo vremeni chasto trebuyut otobrazheniya graficheskih trendov sostoyaniya processa. Vidzhet RtTrend podderzhivaet otobrazhenie neskol'kih trendov odnovremenno.

    Vidzhet Izmeritel'nyj pribor (RtMeter)


    fig: i/rtmeter.gif


    Vidzhet RtMeter imeet vid polukruga s riskami, otmechayushchimi 1/3, 1/2 i 2/3 dliny dugi. Strelka mozhet peremeshchat'sya s pomoshch'yu myshi ili klaviatury ili programmno. Odnokratnoe nazhatie knopki myshi peremeshchaet strelku v tekushchuyu poziciyu kursora; pri nazhatii i posleduyushchem peremeshchenii myshi ("drag") strelka sleduet za kursorom.

    Dialog vybora shrifta (PtFontSel)


    fig: i/fontsel.gif


    |tot vidzhet chitaet standartnye fajly konfiguracii shriftov i pokazyvaet spisok dostupnyh shriftov. On pozvolyaet vybrat' shrift i stil' (zhirnyj, kursiv t.d.) i takzhe ukazat' neobhodimost' ispol'zovaniya tehnologii sglazhivaniya (anti-alias).

    Vidzhet Vybor fajla (PtFileSel)


    fig: i/filesel.gif


    Vidzhet PtFileSel pozvolyaet otobrazhat' drevovidnuyu ierarhiyu fajlov, katalogov ili proizvol'nyh elementov. S pomoshch'yu etogo vidzheta pol'zovatel' mozhet prosmatrivat' strukturu fajlovoj sistemy i vybirat' trebuemyj fajl ili katalog.

    Dialog nastrojki pechati (PtPrintSel)


    fig: i/printsel.gif


    Vidzhet PtPrintSel pozvolyaet pol'zovatelyu vybrat' printer i proizvesti neobhodimuyu nastrojku parametrov pechati. Pol'zovatel' mozhet zadat' diapazon stranic dlya vyvoda na pechat' i kolichestvo kopij.

    Vidzhet HTML (PtHtml)


    fig: i/html.gif


    Ispol'zovanie dannogo vidzheta oblegchaet sozdanie sobstvennogo sredstva prosmotra dokumentacii formata HTML. Vidzhet sam vypolnyaet formatirovanie standartnogo HTML-fajla i dazhe avtomaticheski zagruzhaet kartinki. On obrabatyvaet prokrutku, izmenenie razmera, prakticheski vse trebuemye funkcii.

    Sozdanie novyh vidzhetov

    Esli standartnyh vidzhetov Photon nedostatochno, to vy mozhete legko sozdat' svoi sobstvennye novye vidzhety! V sostav sredy razrabotki Photon vhodit polnaya dokumentaciya i primery ishodnogo koda dlya sozdaniya sobstvennyh vidzhetov. Vy mozhete sozdavat' podklassy sushchestvuyushchih vidzhetov, chtoby obespechit' nasledovanie ih funkcional'nosti, ili sozdat' sobstvennoe derevo vidzhetov.

    Rezyume

    Photon olicetvoryaet novyj podhod k sozdaniyu graficheskogo pol'zovatel'skogo interfejsa s ispol'zovaniem mikroyadra i "komandy" vzaimodejstvuyushchih processov, a ne monolitnyj podhod, harakternyj dlya drugih okonnyh sistem. V rezul'tate Photon demonstriruet unikal'nye harakteristiki: