abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 17:02 | Pozvánky
Přijďte si popovídat o open source obecně a openSUSE konkrétně s dalšími uživateli a vývojáři. Oslava nového vydání openSUSE Leap se uskuteční 16. prosince od 17:00 v nových prostorách firmy SUSE v Praze. K dispozici bude nějaké občerstvení a DVD pro ty, kdo je sbírají nebo ještě mají mechaniku. Po párty v kanceláři se bude pokračovat v některé z hospod v okolí.
Miška | Komentářů: 0
dnes 14:55 | Zajímavý software

Byla vydána verze Alpha 1.0 otevřeného operačního systému pro chytré hodinky AsteroidOS. Podporovány jsou hodinky LG G Watch, LG G Watch Urbane, Asus ZenWatch 2 a Sony Smartwatch 3. Ukázka ovládání hodinek na YouTube. Jaroslav Řezník přednášel o AsteroidOS na chytrých hodinkách (videozáznam) na letošní konferenci OpenAlt.

Ladislav Hagara | Komentářů: 0
dnes 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
dnes 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
včera 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
včera 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
včera 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
včera 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 808 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Hotové widgety pro konzolové aplikace

20.4.2009 20:33 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Hotové widgety pro konzolové aplikace
Přečteno: 709×
Zdravím všechny,

vytvářím v C++ konzolovou aplikaci - nástroj pro generování několika konfiguráků pro síťové služby plus sledování jejich stavu.

Hledám nějakou knihovnu s hotovými widgety pro takovou aplikaci. Konkrétně potřebuju listbox (ideálně s podporou pro více sloupců), menu a formulář se vstupními poli typu edit, masked edit, checkbox a combobox (a samozřejmě tlačítky OK a Storno). V ideálním případě i menu (typu MC pod klávesou F9).

Abych byl úplně přesný, ta aplikace v mých představách je v podstatě takový htop s několika dialogovými okny ve stylu Midnight Commanderu (některé dialogy obsahují listbox, některé formulář se vstupními poli).

Prozatím jsem v rámci poznávání/zkoumání sám implementoval ten vícesloupcový listbox za použití ncurses knihovny. Celkem jsem si ho vymazlil, ale vzalo to skoro tři dny, a počítám, že implementace plusmínus univerzálního widgetu, na kterém by se daly stavět dialogy se vstupními poli různých typů, si vezme ještě mnohem víc. Jelikož mi to v dané situaci připadá jako vynalézání kola, poohlížím se po něčem hotovém, ale nedaří se mi najít nic připraveného k dalšímu použití.

Nevěděl by někdo o něčem? Pokud to bude na ncurses, stačí mi ty formuláře, pokud by to bylo na s-lang, potřebuju i listbox.

Jako záložní řešení mám kuchání zdrojáků MC, ale fakt se mi nezdá, že by nic lepšího už dávno neexistovalo.
~ w w w w (oo)   [oo] w w w w ~

Odpovědi

20.4.2009 20:35 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace
Ještě jsem zapomněl dodat, že jsem zkoušel experimentovat i s CDK knihovnou, ale jednak mi přijde značně nepěkná (ve srovnání s MC dialogy) a jednak jsem nepřišel, jak vyrobit formulář, na kterém by bylo najednou textové vstupní pole (edit), formátované vstupní pole (masked edit), combobox a checkbox.
~ w w w w (oo)   [oo] w w w w ~
21.4.2009 08:25 nigol
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace

Co třeba Turbo Vision? tvision.sourceforge.net/ ale nevím jak je na tom, já jsem TV použil naposled pod DOSem.

26.4.2009 20:25 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace

Díky za tip, TVision je asi přesně to, co jsem měl na mysli.

Mám ale problém - nejde mi zkompilovat (jakože samotné knihovny) - zkoušel jsem odkazovanou GPL verzi i BSD fork ze stránek Sergio Sigaly.

Odhaduji, že mi pro kompilaci chybí nějaké další knihovny, ale nedaří se mi dohledat, jaké to vlastně jsou.

Tady jsou výpisy z kompilace (v obou případech samozřejmě nejdřív spouštím ./configure, které proběhne úspěšně):

GPL rhtvision 2.0.3 (verze pro Linux):

$ make
make -C makes -f librhtv.mkf
make[1]: Entering directory `/home/eregon/prac/tvision/tvision/makes'
g++  -I../include        -O2 -pipe  -c ../compat/iffilelen.cc -o ../makes/obj/iffilelen.o
In file included from /usr/include/c++/4.2/bits/locale_facets.h:4599,
                 from /usr/include/c++/4.2/bits/basic_ios.h:44,
                 from /usr/include/c++/4.2/ios:50,
                 from /usr/include/c++/4.2/istream:44,
                 from /usr/include/c++/4.2/fstream:45,
                 from ../include/compatlayer.h:2054,
                 from ../compat/iffilelen.cc:12:
/usr/include/c++/4.2/x86_64-linux-gnu/bits/messages_members.h: In member function ‘typename std::messages<_CharT>::catalog std::messages<_CharT>::open(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::locale&, const char*) const’:
/usr/include/c++/4.2/x86_64-linux-gnu/bits/messages_members.h:69: error: there are no arguments to ‘bindtextdomain’ that depend on a template parameter, so a declaration of ‘bindtextdomain’ must be available
/usr/include/c++/4.2/x86_64-linux-gnu/bits/messages_members.h:69: error: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/include/c++/4.2/x86_64-linux-gnu/bits/messages_members.h: In member function ‘virtual typename std::messages<_CharT>::catalog std::messages<_CharT>::do_open(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::locale&) const’:
/usr/include/c++/4.2/x86_64-linux-gnu/bits/messages_members.h:89: error: there are no arguments to ‘textdomain’ that depend on a template parameter, so a declaration of ‘textdomain’ must be available
make[1]: *** [../makes/obj/iffilelen.o] Error 1
make[1]: Leaving directory `/home/eregon/prac/tvision/tvision/makes'
make: *** [static-lib] Error 2

BSD tvision 0.8:

$ make
cd . \
          && CONFIG_FILES= CONFIG_HEADERS=config.h \
             /bin/sh ./config.status
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive
make[1]: Entering directory `/home/eregon/prac/tvision/tvision-0.8'
Making all in doc
make[2]: Entering directory `/home/eregon/prac/tvision/tvision-0.8/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/eregon/prac/tvision/tvision-0.8/doc'
Making all in lib
make[2]: Entering directory `/home/eregon/prac/tvision/tvision-0.8/lib'
source='TApplication.cc' object='TApplication.o' libtool=no \
        depfile='.deps/TApplication.Po' tmpdepfile='.deps/TApplication.TPo' \
        depmode=gcc3 /bin/sh ../depcomp \
        g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..    -g -O2 -c -o TApplication.o `test -f TApplication.cc || echo './'`TApplication.cc
In file included from /usr/include/c++/4.2/backward/iostream.h:31,
                 from ./tvision/tobjstrm.h:416,
                 from ./tvision/tv.h:635,
                 from TApplication.cc:20:
/usr/include/c++/4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
In file included from ./tvision/tv.h:635,
                 from TApplication.cc:20:
./tvision/tobjstrm.h:289: error: a class-key must be used when declaring a friend
./tvision/tobjstrm.h:289: error: friend declaration does not name a class or function
./tvision/tobjstrm.h:344: error: a class-key must be used when declaring a friend
./tvision/tobjstrm.h:344: error: friend declaration does not name a class or function
./tvision/tobjstrm.h:378: error: a class-key must be used when declaring a friend
./tvision/tobjstrm.h:378: error: friend declaration does not name a class or function
In file included from ./tvision/tobjstrm.h:416,
                 from ./tvision/tv.h:635,
                 from TApplication.cc:20:
/usr/include/c++/4.2/backward/iostream.h:38: error: ‘streambuf’ is already declared in this scope
In file included from ./tvision/tv.h:635,
                 from TApplication.cc:20:
./tvision/tobjstrm.h:426: error: a class-key must be used when declaring a friend
./tvision/tobjstrm.h:426: error: friend declaration does not name a class or function
./tvision/tobjstrm.h:589: error: ‘streampos’ does not name a type
./tvision/tobjstrm.h:594: error: expected ‘;’ before ‘(’ token
./tvision/tobjstrm.h:607: error: expected ‘;’ before ‘(’ token
./tvision/tobjstrm.h:766: error: ‘streampos’ does not name a type
./tvision/tobjstrm.h:771: error: expected ‘;’ before ‘(’ token
./tvision/tobjstrm.h:784: error: expected ‘;’ before ‘(’ token
make[2]: *** [TApplication.o] Error 1
make[2]: Leaving directory `/home/eregon/prac/tvision/tvision-0.8/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/eregon/prac/tvision/tvision-0.8'
make: *** [all] Error 2

~ w w w w (oo)   [oo] w w w w ~
26.4.2009 20:32 Marble | skóre: 27 | blog: marble | Švédsko
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace
Vzpoměl jsem si na cursed GTK, ale netuším, jak moc je to použitelné. Pak už maximálně otázka, jestli ty dialogy musí být v C. Já bych to asi řešil shellem a něčím jako prográmek dialog.
26.4.2009 20:37 Marble | skóre: 27 | blog: marble | Švédsko
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace
Tak koukám pořádně na zadání a shell asi nebude úplně ideální. Ale to GTK možná jo. Nicméně nikdy jsem to nezkoušel a projekt skončil jako beta.
28.4.2009 14:05 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hoové widgety pro konzolové aplikace
Díky, koukal jsem, ale cursed GTK už mi připadá jako příliš těžký kalibr na to, co potřebuju, zatímco dialog, se kterým jsem si hrál už předtím, je příliš jednoduchý - nebo aspoň jsem nepřišel na to, jak vyrobit dialogové okno, kde budou vstupní pole různých typů (editbox, combobox a checkbox).

Pokud by to dialog uměl, pak by mi asi stačil.
~ w w w w (oo)   [oo] w w w w ~
27.4.2009 16:04 pozortucnak | skóre: 21 | blog: vecny_windowsar
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Mimo mísu, ale taková okýnka se dají jednoduše delat ve fpc...
Jsem mimořádně obtížný případ
28.4.2009 13:10 joe
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
To je to výše zmiňované Turbo Vision.
Fuky avatar 28.4.2009 13:03 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Mrkni se na NCURSES Programming HOWTO mimo knihoven -lmenu -lform -lpanel je tam i zmíňka o CDK (Curses Development Kit).
28.4.2009 14:10 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Díky za tip, nicméně tohle HOWTO už mám načtené a i s CDK jsem se dost napokoušel, viz moje doplnění dotazu.
~ w w w w (oo)   [oo] w w w w ~
28.4.2009 20:28 Někdo jiný | skóre: 18 | blog: Někde jinde
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Zkus se podívat na whiptail nebo newt.
28.4.2009 23:31 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Díky i za tenhle tip, ale i na tohle jsem se už díval - newt je ekvivalent ncurses, ale neobsahuje žádné widgety, což je to, co já hledám.

Whiptail by mohl být fajn, ale stejně jako u řešení zmíněných výše jsem nepřišel na to, jak dostat do jednoho dialogového okna více vstupních polí. Navíc se mi jeví, že whiptail má widgety v sobě zadrátované (pletu se?), což je nepohodlné, pokud to chci použít ve vlastní C++ aplikaci namísto z shellu.

To se mi víc líbí dialog, který je frontendem k libdialog, která se dá přilinkovat i k jiné aplikaci. Ovšem ani u toho dialogu/libdialogu netuším, jak do jednoho dialogu dostat víc vstupních polí - pokud by to šlo, tak jsem spokojený člověk.
~ w w w w (oo)   [oo] w w w w ~
28.4.2009 23:34 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
ale neobsahuje žádné widgety, což je to, co já hledám
Tím samozřejmě myslím to, že já hledám ty widgety, ne knihovnu o úroveň níž.
~ w w w w (oo)   [oo] w w w w ~
28.4.2009 23:38 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Zatím ze všech řešení, která tu byla zmíněna, asi požadavkům vyhovuje jen TurboVision, který mi ale nejde zkompilovat :(

Nemohl by to někdo vyzkoušet u sebe? Třeba je problém s mojí konfigurací (Kubuntu 8.04 64-bit - žádné speciální úpravy týkající se vývoje).
~ w w w w (oo)   [oo] w w w w ~
29.4.2009 08:53 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace

Ahoj,

Tak jsem to zkusil (svn snapshot od rthvision - rhtvision-2.1.0.src.tar.gz) - kompilace v pohode, priklady chodi.

Postup:

$ ./configure --prefix=/home/chocholj/usr
Configuring Turbo Vision v2.1.0 library

Determining OS: UNIX [Linux]
Looking for a working gcc: gcc OK
C flags: -O2 -pipe -Wno-packed
C++ flags: -O2 -pipe -Wno-packed
Looking for the C++ compiler: g++
Checking Architecture: x86
Looking for pointer size:  32 bits
Looking for prefix: /home/chocholj/usr (cached/specified)
Checking if this system follows the FHS: no
Looking for GNU make: make
Looking for GNU ar: ar
Looking for install tool: install
Looking for xgettext: 0.17
Looking for gpm library: 1.20.1 OK
Looking for ncurses library: 5.5 OK
Checking if ncurses have define_key: yes
Looking for X keysyms definitions:  yes OK
Looking for X11 libs: yes OK (X11 rev 0)
Looking for outb definition in sys/io.h: yes
Checking for international support: yes OK
Checking endianess: little endian

Generating Makefile
Configuring makefiles: intl/dummy/Makefile
Configuring RHIDE: makes/rhide.env compat/rhide.env
Configuring RHIDE: examples/rhide.env
Generating configuration header: no changes
Extracting from makes/librhtv.imk: processing
Extracting from compat/compat.imk: processing
Processing winnt/bccmake.in => winnt/Makefile
Processing winnt/msvcmake.in => winnt/Makefile.nmk
Makefiles for examples.
Makefiles for translations.
Processing intl/gnumake.in => intl/Makefile
Processing redhat/librhtv.spec.in => redhat/librhtv-2.1.0.spec
Processing qnxrtp/tvision.qpg.in => qnxrtp/tvision.qpg
 
 
$ make -j 3
make -C makes -f librhtv.mkf
gcc -o rhtv-config -Iinclude rhtv-config.c
make -C intl/dummy
make[1]: Entering directory `/home/chocholj/src/tvision/makes'
gcc  -I../include -I/usr/X11R6/include        -O2 -pipe -Wno-packed -c ../compat/beep.c -o ../makes/obj/beep.o
make[1]: Entering directory `/home/chocholj/src/tvision/intl/dummy'
gcc    -c -o intldummy.o intldummy.c
ar -rv libtvfintl.a intldummy.o
ar: creating libtvfintl.a
a - intldummy.o
make[1]: Leaving directory `/home/chocholj/src/tvision/intl/dummy'
cp intl/dummy/libtvfintl.a makes
make -C intl
make[1]: Entering directory `/home/chocholj/src/tvision/intl'
msgfmt -o es.mo es.po
msgfmt -o ru.mo ru.po
gcc  -I../include -I/usr/X11R6/include        -O2 -pipe -Wno-packed -c ../compat/drivevalid.c -o ../makes/obj/drivevalid.o
msgfmt -o pl.mo pl.po
make[1]: Leaving directory `/home/chocholj/src/tvision/intl'
make DYNAMIC_LIB=1 -C makes -f librhtv.mkf
make[1]: Entering directory `/home/chocholj/src/tvision/makes'
gcc  -I../include -I/usr/X11R6/include      -fPIC  -O2 -pipe -Wno-packed -c ../compat/beep.c -o ../makes/obj/beep.lo
....

 

System je Centos 5.2, gcc 4.1.2

29.4.2009 18:10 Eregon | skóre: 22 | blog: Eregonovy_vymysly | Všudezdejší
Rozbalit Rozbalit vše Re: Hotové widgety pro konzolové aplikace
Díky, SVN snapshot se zkompiloval i mně (předtím jsem zkoušel jen stable verze).

Trošku mě mrzí, že se mi nepovedlo zkompilovat BSD verzi, protože vypadá, že má lepší dokumentaci, ale hádám, že to nebude problém.

Za pomoc všem patří moje velké díky.
~ w w w w (oo)   [oo] w w w w ~

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.