Newsgroup: it.comp.os.linux.development
Titolo: ncurses e menu a cascata

Malediozione... non riesco ad avere i menu come voglio io.
Sapete se è possibile con le ncurses avere i normali menu che si hanno con
i vari toolkit grafici? Quelli con una menubar, premi per esempio CTRL-F e
ti si apre il menu file con tutte le sue sotto vocine?
Avete un qualche esempio?
Purtroppo per una serie di motivi non posso usare le fidate gtk per fare
questa applicazione e ci sto mettendo troppo tempo senza concludere
nulla...



ti ricordo che oltre le gtk esistono anche qt,wxwindos,tk, etc... ma non
so se puoi/vuoi usarle.
Per quanto riguardo i menu nelle ncurses, si, si possono fare nello stile
che dici tu.
Basta creare una nuova finestra per esempio in alto nel terminale con
all'interno i menu da utilizzare. Per avere dei validi esempio, guarda la
sezione menu nell'ottimo "ncurses programming howto"
http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/menus.html
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 
http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/menus.html
io l'ho già guardato, ma non mi sembra un gran che. Tutti gli esempi dei
menu non fanno quello che voglio io.

 menu non fanno quello che voglio io.
Vediamo se ho capito: tu vuoi emulare un classico menu a tendina, giusto?
in alto nel terminale visualizzi una serie di scritte in orizzontale.
| file | edit | help ...
Alla pressione, per es°, di ctrl-f crei una finestra che sta esattamente
sotto una di queste scritte, contenente all'interno dei menu come negli
esempi che trovi nel link sopra.
piu' o meno vedresti cose del genere
| file     | edit | help ...
|----------|
| nuovo    |
| recenti >|
| modifica |
| esci     |
|__________|
e poi associ azioni ai vari menu, o fai comparire sotto menu con la stessa
tecnica se te ne servono.
Non e' questo che vuoi fare?


 Non e' questo che vuoi fare?
sì, ma nell'howto non l'ho mica trovato.



l'howto ti spiega come creare finestre
ti spiega come creare menu
ti spiega come gestire gli input da tastiera
prima ti ho spiegato una possibile sequenza di azioni da fare per 
realizzare cio' che vuoi, che si riassume in:
controllo input tastiera
se in input c'e' TASTO-CHE-APRE-MENU
  crea nuova finestra rettangolare nelle coordinate sotto MENU
  inserisci nella nuova finestra gli ncurses menu
  quando l'utente schiaccia invio, controlli su quale voce e' e agisci di
     conseguenza.
se non capisci come usare menu.h, puoi anche riscriverti da solo cio' che
ti serve per andare su e' giu' per le righe di una finestra, facendo
cambiare colore allo sfondo della riga.
menu.h non e' fondamentale.
Quali nozioni ti mancano?


Ottavio Campana wrote:

Ho un pezzo di vecchio codice (fatto pure male) che apre un menu' e attende
che selezioni qualcosa, ma sono 400 righe e non vorrei tediare qualcuno del
NG appendendolo su questa news, caso mai te lo spedisco. Comunque avevo
utilizzato tutte queste librerie:
#include <curses.h>
#include <panel.h>
#include <menu.h>
#include <form.h>
Si tratta solo di creare delle finestre (ma ci avevo messo parecchio :P)
Nicola.
-- 
chi va pian va san e va lontan

Visto che siamo in tema ncurses, qualcuno di voi conosce del materiale
veramente *esauriente* a riguardo?
grazie
	rob

 Quali nozioni ti mancano?
no, va bene, mi servirebbe un esempio da cui scopiazzare velocemente.
Tuttavia a furia di maledire le ncruses sono approdato alle newt. Non
hanno il menu, però mi sono fatto delle finestre ad hoc e mi sembrano più
veloci per sviluppare delle ncurses.

 nulla...
Pubblicità progresso:  Turbo Vision  esiste anche  per Linux.  E' un
ottimo toolkit pieno di  documentazione creato originariamento dalla
Borland... e  che da  qualche anno  è stato  reso Open  Source dalla
Borland  stessa. E'  mantenuto di  continuo (leggasi:  non si  corre
il  rischio che  un  domani  non sia  più  aggiornato il  sorgente),
come  detto si  può  reperire  un sacco  di  documentazione... e  ha
caratteristiche che nessun altra libreria  testuale ha. Ad esempio è
facilissimo  creare menù,  finestre, pulsanti,  listbox, checkbox...
/etc /etc, ed è adirittura disponibile un "designer" stile glade per
creare a colpi  di click una GUI testuale (e,  incredibile dictu, il
designer stesso  è un'applicazione testuale scritta  in turbo vision
:)))
p.s. se hai tempo dacci un occhio, ne vale la pena!
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
Zanac is the Author of QTParted:
http://qtparted.sourceforge.net

 č facilissimo creare menů, finestre, pulsanti, listbox, checkbox...
Me ne vengono in mente due: JTTui per Ruby, e il Console Tool Kit.
Probabilmente ce ne sono altri.
-- 
"We should not be looking for the tools that novices can safely use.
We should be looking to increase the skill of those novices so that
they can safely use the power tools that will get the real work
done."            (Robert Martin on the Pragmatic Programmer's mailing list)

 Probabilmente ce ne sono altri.
Veramente carino jttui, sarà che Ruby mi è piuttosto simpatico... ma
queste librerie mi sono proprio piaciute! :)
Meditavo invece  sul fatto che  in questi  anni non è  emerso nessun
progetto con  il fine di  creare una  serie di wrapper  per librerie
console e X. Mi spiego meglio: sarebbe molto bello poter disporre di
una libreria che includa i più comuni oggetti che si usano sulle GUI
(combobox, listbox, finestre di dialogo modali e non, pulsanti, /etc
/etc),  a questo  punto  se  il programma  che  usa queste  librerie
viene  lanciato  in  console  dovrebbe  visualizzare  il  tutto  con
ncurses/tvision (continuo ad essere dell'avviso che tvision è il più
cool :)),  e se  lanciato sotto X  dovrebbe invece  appoggiarsi alle
GTK+/QT (a scelta, una vale l'altra imho).
Sono certo che  qualche progettino del genere esiste, e  ve ne sarei
grato di passarmi qualche link...
Dal  lato mio  un  paio  di anni  fa  tenevo  d'occhio dldialog  che
prometteva davvero bene:  in console usava tvision e sotto  X QT, ma
purtroppo il progetto  è morto e defunto... la  parte tvision ancora
compila, ma la parte QT è rimasta alle QT 1.4 :(
Mi ricordo che  l'italianissimo AGX (l'autore di  Bad Penguin) aveva
scritto libgringo, e probabilmente  sono un'ottima scelta, visto che
sicuramente AGX  continerà a mantenerle a  lungo... purtroppo queste
librerie peccano del  fatto che sono incluse di default  solo in Bad
Penguin, non è un grosso  problema, ma sarebbe carino se esistessero
rpm/deb e quant'altro per tutte le altre distro.
...una  libreria  del  genere  sarebbe  comodissima  per  moltissimo
programmi, il tutto molto imho come sempre :)
byeZ!


 __declspec(dllexport) and __declspec(dllimport)
That's a complicated question.  Essentially, the MS engineers were on crack
when they designed Windows DLLs.    (C. Thompson on the Cygwin mailing list)

 basterebbe uno strato di astrazione anche molto sottile.
Effettivamente  hai ragione,  ho fatto  qualche prova  e a  colpi di
"change" ho  portato un'applicazioncina di  esempio da GTK a  CTK :)
Molto cool!
Sarebbe  carino se la trolltech sviluppasse una libreria analoga per
le sue QT... ma dubito altamente che lo farà mai :(
Ad ogni modo non è che sei a conoscenza di un wrapper CTK per Ruby?


 Think twice, code once.
Think all the time. Refactor all the time. Code forever.
                   (Ron Jeffries on the Pragmatic Programmer's mailing list)