2010-01-20 7 views
8

Sto cercando di aggiungere un elemento al mio GUI wxWidgets che si comporta come un emulatore di terminale. Non in termini di shell che esegue comandi, ma solo l'impostazione input-output di un'applicazione in esecuzione in un terminale.Una finestra simile a un terminale per wxWidgets?

In sostanza, i requisiti sono:

streaming di ingresso/uscita: Quando si entra in un personaggio, si aggiunge ad un flusso di input, e quando qualcosa viene convogliata al terminale, esso stampa immediatamente.

Nessuna modifica: una volta digitato un carattere, è permanentemente lì, poiché probabilmente è stato utilizzato dall'applicazione in esecuzione nel terminale.

Una sorta di scorrimento (anche se mostra solo alcune righe o qualcosa).

Sarebbe bello se c'è qualcosa che già lo fa, ma i suggerimenti su come implementarlo con controlli già esistenti come wxTextCtrl sarebbero anche benvenuti.

+0

Jeremy, se questa era la tua risposta https://github.com/jeremysalwen/TerminalWx - non varrebbe la pena di dare una risposta? Sono interessato allo stato attuale del tuo componente. Le ultime modifiche erano nel dicembre 2013, ultima (e unica) versione nel 2012 ... – Wolf

risposta

3

So che è un paio di settimane in ritardo, ma spero che sia ancora utile. Ho un progetto chiamato Chameleon che utilizza un widget di terminale VT100 basato su wxWidgets, che era a sua volta basato su un progetto chiamato taTelnet. La fonte Chameleon è disponibile dal mio sito web (download page here). Non sono sicuro che sia esattamente quello che stai cercando, ma potrebbe darti qualche idea. Sentiti libero di farmi sapere se hai qualche domanda al riguardo.

+0

Grazie, questo * esattamente * quello che sto cercando! Lo esaminerò e ti farò tutte le domande che potrei avere. –

+0

Nota: il codice sorgente si trova in una struttura di directory piatta, ma il progetto si aspetta che sia nelle cartelle. –

+0

Hmm. Potrebbe aver commesso un errore quando lo stavo schiacciando. Grazie per l'avviso. – markerikson

2

wxWidgets supporta il reindirizzamento di STDOUT a un wxTextCtrl tramite wxStreamToTextRedirector. Per quanto riguarda l'input, è possibile sovrascrivere l'evento OnChar in una classe derivata da wxTextCtrl per gestirlo.

Problemi correlati