diff options
author | kraxel <kraxel> | 2008-11-04 12:34:30 +0000 |
---|---|---|
committer | kraxel <kraxel> | 2008-11-04 12:34:30 +0000 |
commit | 5c906e533c9673d57b66f7c7ff4a40621fcaa9ab (patch) | |
tree | 120df72a76094929374ffff38ca24db3b800e12b /qemu-gtk.c | |
parent | 92fa8f0a1bb08dbb13822c39798ad569d912e12e (diff) | |
download | qemu-gtk-5c906e533c9673d57b66f7c7ff4a40621fcaa9ab.tar.gz |
use info chardev.
Diffstat (limited to 'qemu-gtk.c')
-rw-r--r-- | qemu-gtk.c | 56 |
1 files changed, 36 insertions, 20 deletions
@@ -60,19 +60,22 @@ static void config_write(void) static void vtes_set_font(struct qemu_window *win) { + struct qemu_conn *term; + if (win->monitor.vte) vte_terminal_set_font_from_string(VTE_TERMINAL(win->monitor.vte), win->tty_font); - if (win->console.vte) - vte_terminal_set_font_from_string(VTE_TERMINAL(win->console.vte), - win->tty_font); if (win->gdb_vte) vte_terminal_set_font_from_string(VTE_TERMINAL(win->gdb_vte), win->tty_font); + for (term = win->terms; term != NULL; term = term->next) + vte_terminal_set_font_from_string(VTE_TERMINAL(term->vte), + win->tty_font); } static void vtes_set_colors(struct qemu_window *win) { + struct qemu_conn *term; GdkColor fg = {0,0,0,0}; GdkColor bg = {0,0,0,0}; @@ -82,14 +85,14 @@ static void vtes_set_colors(struct qemu_window *win) vte_terminal_set_color_foreground(VTE_TERMINAL(win->monitor.vte), &fg); vte_terminal_set_color_background(VTE_TERMINAL(win->monitor.vte), &bg); } - if (win->console.vte) { - vte_terminal_set_color_foreground(VTE_TERMINAL(win->console.vte), &fg); - vte_terminal_set_color_background(VTE_TERMINAL(win->console.vte), &bg); - } if (win->gdb_vte) { vte_terminal_set_color_foreground(VTE_TERMINAL(win->gdb_vte), &fg); vte_terminal_set_color_background(VTE_TERMINAL(win->gdb_vte), &bg); } + for (term = win->terms; term != NULL; term = term->next) { + vte_terminal_set_color_foreground(VTE_TERMINAL(term->vte), &fg); + vte_terminal_set_color_background(VTE_TERMINAL(term->vte), &bg); + } } static void vte_configure(struct qemu_window *win, GtkWidget *vte) @@ -564,17 +567,35 @@ close: return FALSE; } -static int conn_connect(struct qemu_conn *conn, char *name, char *dest) +int conn_open_term(struct qemu_window *win, char *name, char *dest, int pos) { + struct qemu_conn *conn; int fd; + for (conn = win->terms; conn != NULL; conn = conn->next) { + if (strcmp(conn->name, name) == 0) { + /* TODO: maybe bring tab to front? */ + return 0; + } + } + + conn = malloc(sizeof(*conn)); + if (!conn) + return -1; + memset(conn,0,sizeof(*conn)); + fd = conn_init(conn, name, dest); - if (-1 == fd) + if (fd == -1) { + free(conn); return -1; + } + conn->next = win->terms; + win->terms = conn; conn->ch = g_io_channel_unix_new(fd); conn->id = g_io_add_watch(conn->ch, G_IO_IN, conn_watch, conn); - return fd; + qemu_conn_tab(win, conn, pos); + return 0; } /* ------------------------------------------------------------------ */ @@ -614,6 +635,9 @@ static const GtkActionEntry entries[] = { .name = "UnplugUsbSubMenu", .label = "_Unplug USB", },{ + .name = "OpenTermSubMenu", + .label = "_Open Terminal", + },{ /* --- file menu --- */ .name = "Close", @@ -739,6 +763,7 @@ static char ui_xml[] = " <menu action='EjectMediaSubMenu'/>" " <menu action='PlugUsbSubMenu'/>" " <menu action='UnplugUsbSubMenu'/>" +" <menu action='OpenTermSubMenu'/>" " <separator/>" " <menuitem action='DevicesRescan'/>" " </menu>" @@ -908,7 +933,6 @@ static void usage(FILE *fp) " -d Raise debug level.\n" " -k Keep window open on VM shutdown.\n" " -m Enable monitor logging and access.\n" - " -c <dev> Show serial console.\n" "\n" "-- \n" "(c) 2008 Gerd Hoffmann <kraxel@redhat.com>\n", @@ -919,14 +943,13 @@ int main(int argc, char *argv[]) { struct qemu_window *win; - char *console_tab = NULL; int monitor_tab = 0; int quit_on_shutdown = 1; int c; gtk_init(&argc, &argv); for (;;) { - if (-1 == (c = getopt(argc, argv, "hdkmc:"))) + if (-1 == (c = getopt(argc, argv, "hdkm"))) break; switch (c) { case 'd': @@ -938,9 +961,6 @@ main(int argc, char *argv[]) case 'm': monitor_tab++; break; - case 'c': - console_tab = optarg; - break; case 'h': usage(stdout); exit(0); @@ -969,10 +989,6 @@ main(int argc, char *argv[]) /* tabs */ if (monitor_tab) qemu_conn_tab(win, &win->monitor, -1); - if (console_tab) { - if (-1 != conn_connect(&win->console, "text console", console_tab)) - qemu_conn_tab(win, &win->console, 0); - } /* main loop */ gtk_main(); |