|_ Penguin _|
O serveru
Sponzoři
Síň slávy
Backendy, PDA, text
Přidat k oblíbeným
Sidebar: Mozilla, Opera
Domovské stránky
Pošta
Kalendář
Tučňáci
Czech HOWTO
Překladatelské stránky
Návody (HOWTO)
Zátah na hackery
Novinky o debianu
Security announce
Názory
Software
Odkazy CZ/SK
Odkazy US
Noviny  Časopisy
Knihy
|_ Hosted Sites _|
CB.penguin.cz
CVS server
ListServer
Unix versus NT
GRAD
UTX
OWSKiller
PUK - klub uživatelů Penguina
Scriptová Banka
Linux na slabých strojích
|_ Vyhledávání _|
|_ Novinky _|
Nejnovější komentáře:
Diskuse RSS

Jan: Doporučení
Erik: Internet a jeho využití
Georgiy: Нужен срочно товар оп
Georgiy: Нужен срочно товар оп
Sleep_Walker: moje zkusenosti
Logout: Dotykáč

Nejčtenější v uplynulých 30 dnech:

Nejkomentovanější v uplynulých 30 dnech:

 

Připojeno k GTS
Logo serveru Penguin
 
MULTIFUNKČNÍ TISKÁRNY

  Zpět na Novinky
Ben NanoNote: Gtk+ versus Gtk+
jirka (21.01.2012 22:05:12, 28039/1)


Nedávno jsem řešil problém s úpravou mého jednoduchého programu napsaného s využitím Gtk+ na kapesní mini počítač Ben NanoNote. V článku bych proto chtěl zmínit některé zkušenosti, kterých jsem nabyl.


Úvodem

Jak jsem tu už několikrát zmínil, používám linuxový kapesní počítač Ben NanoNote a to jako deníček, úkolníček a kalendář, čtečku RSS, kapesní kalkulačku (i grafickou díky Gnuplotu a Octave) i jako hudební přehrávač a podobně.

Ben NanoNote micronotebook

Od kapesního počítače ovšem očekávám také běh některých mých vlastních programů, které využívám v práci (při přípravě výuky, písemek a tak), konkrétně program MicroDef, o kterém se píše níže. Ten je grafický a je napsán s využitím knihovny Gtk+. Pokud jsem jako telefon používal Neo Freerunner, tak jsem tento problém neřešil a používal MicroDef zkompilovaný pro FreeRunner. Potom, co jsem se rozhodl začít používat raději "hloupý" telefon (kvůli výdrži a rozměrům), a NanoNote se stal mým jediným kapesním počítačem, bylo nutné situaci nějak řešit.

Microdef on Neo Freerunner

Software na Ben NanoNote

Problém se má tak: protože Ben je opravdu maličký, má jednak na dnešní poměry relativně omezený hardware (zejména operační paměť o velikosti 32 MiB, procesor architektury MIPS o frekvenci přes 300 MHz bohatě stačí), ale také nemá žádné ukazovací zařízení (myš, trackball, touchpad nebo cokoli podobného) a ovládá se výhradně pomocí klávesnice. Také jeho obrazovka o velikosti 3" a rozlišení 320x240 bodů moc nepřeje náročným grafickým prostředím. Všechny tyto skutečnosti maj vliv na to, jaký software je pro přístroj k dispozici.

Gmenu2x Launcher on Ben NanoNote

V zásadě existují dvě hlavní linuxové distribuce: oficiálně a nejaktivněji podporovaný port OpenWRT a na OpenEmbedded založená distribuce Jlime. Každá má nějaké výhody a nevýhody. Jlime používá X Window System a správce aplikací Matchbox, což ji činí teoreticky kompatibilní s většinou obvyklého software z linuxových desktopů. Prakticky je problém v rychlosti a odezvě aplikací: větší programy se nevejdou do paměti a i pro běžný běh "lehčích" programů potřebujele swap na disk (zde na microSD kartu, což jistě nesvědší její životnosti). I při používání relativně nenáročných programů to ovšem není "komfortně" rychlé a trochu se to "zadrhává" (občas musíte počkat, než se objeví vložený text, některé písmenko se "ztratí" a jiné zopakuje mnohokrát a tak podobně). Naopak v OpenWRT není X Windows System obsažen vůbec a všechny programy běží buď v textovém režimu nebo využívají přímo linuxový fremebuffer. Všechno je podstatně rychlejší a plynulé, nevýhodoud ovšem je problém s multitaskingem - textových konzolí je k dispozici dost (přepíná se pomocí alt+1 .. alt+5 nevo alt+šipky vlevo/vpravo), potíž bývá s více grafickými programy. Ale není problém mít spuštěný třeba prohlížeč PDF (nupdf) a několik programů v textovém režimu a tedy například číst si nějaký text a současně si z něj dělat výpisky nebo nahlížet do slovníku (sdcv). Největší výjimkou jsou programy napsané pomcí Qt, ze kterých se nikam přepnout nelze.

Gtk+ na Ben NanoNote

Čistě teoreticky by žádný problém s Gtk+ vzniknout neměl, protože knihovna může fungovat jak pod X Window Systemem, tak ve přímo na linuxovém framebufferu díky DirectFB. Ale jak uživatel linuxového desktopu asi tuší, nebude to tak jednoduché. Zjevný problém je relativní "roztahanost" ovládacích prvků a velikost standardních dialogů. O zbytku se zmíním dále. Jinak Gtk+ programy fungují docela dobře a pro NanoNote je jich k dispozici několik.

Problémem může být, že některé funkce nejsou dostupné z klávesnice (u mě to bylo například zadávání grafických prvků klikáním na zobrazené body). Takové části programu je potřeba přepsat. A samozřejmě je nutné mít tam nějakou vlastní klávesovou zkratku (nebo položku v nabídce) pro ukončení programu (žádné Alt+F4 tu nefunguje).

Portování na OpenWRT (Gtk+ na DirectFB)

Microdef on Ben NanoNote

Jak jsem již psal, Gtk+ zde využívá DirectFB. Funguje to, rychle a spolehlivě, ale mouch se najdou:

  • Standardnní dialog pro výběr souboru se na obrazovku prostě nevejde. Používat se dá (reaguje, jak má), ale není vidět, co se děje. Je jedno, zda se použije "zastaralý" typ dialogu (ve Stylu Gtk+ řady 1.0) nebo nový typ, problém je u obou (starý dovedu používat lépe, ale to je asi věc zvyku). Tady je jediné řešení: nahradit vlastním.
  • Při kreslení do GtkDrawingArea se mi nepodařilo dosáhnou různé tloušťky čar - všechny byly stejně tlusté. Pro mě je to málo vadící drobnost, ale v pořádku to úplně není.
  • Poslední problém nakonec: nefunguje vkládání čísel. To se na NanoNote zapisuje jako "fn" + písmeno (například |fn|+ "k" pro číslo "5") a to nefunguje (vloží se například to "k"). Přitom modifikátor "červená šipka" pro psaní speciálních znaků funguje normálně. Prozatím jsem to vyřešil tím, že v polích, kde se vkládají čísla, převádím po přečtení příslušná písmena na číslice (tedy třeba to "k" na "5").

Další věc, ze kterou jsem trochu válčil, bylo psaní textů na GtkDrawingArea. Ale to byla moje chyba - používal jsem zastaralé funkce, které jsem musel nahradit použitím knihovny Pango - šlo u úpravu o délce pár řádků.

Portování na Jlime

MicroDef on Ben NanoNote

Tu vlastně není o čem psát - program upravený pro ovládání jen z klávesnice stačí přeložit a používat. I dialogy pro práci se soubory jsou zmenšené na velikost obrazovky a jsou v zásadě použitelné a plně funkční. Jediný problém je rychlost a odezva celého prostředí.

Závěry

I Gtk+ aplikace de dají portovat, a úspěšně používat, na takové malé věci, jako je Ben NanoNote. Ale zejména v případě systému OpenWRT je nutné trochu víc práce. Každopádně bude nutné program upravit, aby se vešel na obrazovku a aby se dal (pohodlně!) ovládat pouze pomocí klávesnice.

Zde najdete anglický originál článku.

[Tiskni] [Přidat komentář] [Skrýt komentáře]

Napsal Stanislav Brabec 31. 1. 2012 v 20:31
Téma: Roztahanost GTK+

Problém roztahanosti GTK+ leží již přímo v definici HIG a implementaci GTK+. Chtělo by to opravit v samotném GTK+, aby umožňoval změnit velikost prázdných míst v definici tématu, případně aby automaticky volil jiný dialog na výběr souborů.
http://mail.gnome.org/archives/gtk-devel-list/2003-February/msg00009.html
http://mail.gnome.org/archives/usability/2008-January/msg00014.html
Odkazované HIG je nyní zde: https://live.gnome.org/Design/HIG (stále s natvrdo předepsanými rozměry).
[Reagovat]


[Tiskni] [Přidat komentář] [Skrýt komentáře]


Zpět na Novinky
|_ Nastavení & Info _|
Získání účtu?
|_ On-Line DOC _|
Debian Packages
TUXfinder
|_ Zajímavá místa _|
CZilla..
Webdot.cz
ABC Linuxu..
Konference
Linux na MFF UK
Debian
SuSE Linux
Blackhole
Root..
Reboot
Linuxzone.cz
Underground..
Linuxworld
Documentation Archiv
Manualy SK
Linuxsoft.cz..
|_ Linuxová komunita _|
Linux CZ
Linux SK
GNU
SkLUG
Freesoft
|_ Staré dobré sajty _|
Linuxové noviny
Dokumentační projekt
Mikroservis
Školičky
Myslíkovna
|_ Mirror _|
Phuture
|_ Kalendář _|
Přidej akci

|_ Počitadlo _|
    
Server vzniká za pomocí open-source produktů. Mezi nejdůležitější patří GNUDebianLinuxApachePHPMySQLGimp. Vim. Tomcat.
LINUX Trademark Registration of Linus Torvalds from US
UNIX Trademark Registration of X/Open
Copyright Penguin 1998 - 2023. ALL RIGHTS RESERVED