====== Introduzione alla libreria Vte ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//24/03/2016 - 11:11//** \\ \\ {{:programmazione:vte:vte0.png?400|}} La libreria Vte permette di creare un widget terminale nelle nostre applicazioni Gtk. Di seguito un codice di esempio in C. **main.c** #include #include int main( int argc, char *argv[] ) { //Widget che servono GtkWidget *window_main; GtkWidget *vbox; GtkWidget *vte; GtkWidget *notebook; GtkWidget *scrolled_window; GtkWidget *label; gtk_init (&argc, &argv); //Finestra principale window_main = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_main), "Vte example"); //Contenitore principale ( un box verticale) vbox = gtk_vbox_new(FALSE,0); gtk_container_add (GTK_CONTAINER (window_main), vbox); //Creiamo il contenitore a schede (notebook) e lo agganciamo al vbox notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM); gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0); //Creiamo una scrolled window e la agganciamo al contenitore a schede scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); label = gtk_label_new ("terminale 1"); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled_window, label); //Creiamo il terminale e settiamo qualche proprieta' vte = vte_terminal_new(); vte_terminal_set_background_transparent(VTE_TERMINAL(vte), FALSE); vte_terminal_set_size(VTE_TERMINAL(vte), 80, 45); vte_terminal_set_scrollback_lines(VTE_TERMINAL (vte), -1); // infinite righe di scorrimento vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL (vte), TRUE); //vte_terminal_fork_command(VTE_TERMINAL(vte), NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE); //lancia il terminale (deprecato) gchar **cmd = 0; g_shell_parse_argv("/bin/bash", 0, &cmd, 0); vte_terminal_fork_command_full(VTE_TERMINAL(vte), 0, 0, cmd, 0, 0, 0, 0, 0, 0); //Aggancio il terminale alla scrolled_window e setto le dimensioni desiderate gtk_container_add (GTK_CONTAINER(scrolled_window),vte); gtk_widget_set_size_request(vte, 500, 200); //Alcune callbaks per la chiusura della finestra g_signal_connect(G_OBJECT(window_main),"destroy",G_CALLBACK(gtk_main_quit),NULL); //Mostro tutto gtk_widget_show_all(window_main); gtk_main (); return 0; } **makefile** CPP = gcc OPTS = `pkg-config --cflags --libs gtk+-2.0 vte` all: $(CPP) main.c -o main $(OPTS) clean: rm main