diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2015-07-25 12:00:37 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2015-12-01 15:43:27 +0100 |
commit | f08799bee9ee53100360d86a47bb71591530158b (patch) | |
tree | 65a393e24faf4ea0075d5a2acc60776796265482 | |
parent | a75e48e010e92dc5540e2142efc445ccb0ab1a42 (diff) | |
download | amtterm-f08799bee9ee53100360d86a47bb71591530158b.tar.gz |
switch over to use gtk3
-rw-r--r-- | GNUmakefile | 6 | ||||
-rw-r--r-- | gamt.c | 78 |
2 files changed, 44 insertions, 40 deletions
diff --git a/GNUmakefile b/GNUmakefile index 5fcb4d6..c691bea 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -19,8 +19,8 @@ include mk/Autoconf.mk define make-config LIB := $(LIB) -HAVE_GTK := $(call ac_pkg_config,gtk+-x11-2.0) -HAVE_VTE := $(call ac_pkg_config,vte) +HAVE_GTK := $(call ac_pkg_config,gtk+-x11-3.0) +HAVE_VTE := $(call ac_pkg_config,vte-2.90) endef ################################################################# @@ -29,7 +29,7 @@ endef ifeq ($(HAVE_GTK)$(HAVE_VTE),yesyes) TARGETS += gamt gamt : CFLAGS += -Wno-strict-prototypes - gamt : pkglst += gtk+-x11-2.0 vte + gamt : pkglst += gtk+-x11-3.0 vte-2.90 endif CFLAGS += $(shell test "$(pkglst)" != "" && pkg-config --cflags $(pkglst)) @@ -259,10 +259,9 @@ static void menu_cb_config_font(GtkAction *action, void *data) char *fontname; int done = 0; - dialog = gtk_font_selection_dialog_new("Terminal font"); + dialog = gtk_font_chooser_dialog_new("Terminal font", NULL); fontname = cfg_get_str(CFG_FONT); - gtk_font_selection_dialog_set_font_name - (GTK_FONT_SELECTION_DIALOG(dialog), fontname); + gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), fontname); gtk_widget_show_all(dialog); while (!done) { @@ -271,8 +270,7 @@ static void menu_cb_config_font(GtkAction *action, void *data) done=1; /* fall through */ case GTK_RESPONSE_APPLY: - fontname = gtk_font_selection_dialog_get_font_name - (GTK_FONT_SELECTION_DIALOG(dialog)); + fontname = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(dialog)); vte_terminal_set_font_from_string(VTE_TERMINAL(gamt->vte), fontname); cfg_set_str(CFG_FONT, fontname); break; @@ -284,22 +282,19 @@ static void menu_cb_config_font(GtkAction *action, void *data) gtk_widget_destroy(dialog); } -static int pickcolor(char *title, GdkColor *color) +static int pickcolor(char *title, GdkRGBA *color) { GtkWidget *dialog; - GtkColorSelection *csel; int rc = -1; - dialog = gtk_color_selection_dialog_new(title); - csel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dialog)->colorsel); - gtk_color_selection_set_has_opacity_control(csel, FALSE); - gtk_color_selection_set_current_color(csel, color); + dialog = gtk_color_chooser_dialog_new(title, NULL); + gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(dialog), color); gtk_widget_show_all(dialog); switch (gtk_dialog_run(GTK_DIALOG(dialog))) { case GTK_RESPONSE_OK: - gtk_color_selection_get_current_color(csel, color); - rc = 0; + gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(dialog), color); + rc = 0; } gtk_widget_destroy(dialog); return rc; @@ -308,30 +303,34 @@ static int pickcolor(char *title, GdkColor *color) static void menu_cb_config_fg(GtkAction *action, void *data) { struct gamt_window *gamt = data; - GdkColor color = {0,0,0,0}; + GdkRGBA color = {}; char name[16]; - gdk_color_parse(cfg_get_str(CFG_FOREGROUND), &color); + gdk_rgba_parse(&color, cfg_get_str(CFG_FOREGROUND)); if (0 != pickcolor("Text color", &color)) - return; - vte_terminal_set_color_foreground(VTE_TERMINAL(gamt->vte), &color); + return; + vte_terminal_set_color_foreground_rgba(VTE_TERMINAL(gamt->vte), &color); snprintf(name, sizeof(name), "#%04x%04x%04x", - color.red, color.green, color.blue); + (int)(color.red * 65535), + (int)(color.green * 65535), + (int)(color.blue * 65535)); cfg_set_str(CFG_FOREGROUND, name); } static void menu_cb_config_bg(GtkAction *action, void *data) { struct gamt_window *gamt = data; - GdkColor color = {0,0,0,0}; + GdkRGBA color = {}; char name[16]; - gdk_color_parse(cfg_get_str(CFG_BACKGROUND), &color); + gdk_rgba_parse(&color, cfg_get_str(CFG_BACKGROUND)); if (0 != pickcolor("Background color", &color)) return; - vte_terminal_set_color_background(VTE_TERMINAL(gamt->vte), &color); + vte_terminal_set_color_background_rgba(VTE_TERMINAL(gamt->vte), &color); snprintf(name, sizeof(name), "#%04x%04x%04x", - color.red, color.green, color.blue); + (int)(color.red * 65535), + (int)(color.green * 65535), + (int)(color.blue * 65535)); cfg_set_str(CFG_BACKGROUND, name); } @@ -339,11 +338,13 @@ static void menu_cb_blink_cursor(GtkToggleAction *action, gpointer user_data) { struct gamt_window *gamt = user_data; gboolean state = gtk_toggle_action_get_active(action); + VteTerminalCursorBlinkMode blink; if (amt_debug) fprintf(stderr, "%s: %s\n", __FUNCTION__, state ? "on" : "off"); cfg_set_bool(CFG_BLINK, state); - vte_terminal_set_cursor_blinks(VTE_TERMINAL(gamt->vte), state); + blink = state ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF; + vte_terminal_set_cursor_blink_mode(VTE_TERMINAL(gamt->vte), blink); } static void menu_cb_quit(GtkAction *action, void *data) @@ -370,7 +371,7 @@ static void show_manpage(char *page, char *section) /* ... fallback is an xterm with man */ snprintf(buf, sizeof(buf), "manual page: %s(%s)", page, section); execlp("xterm", "xterm", - "-title", buf, + "-title", buf, "-e", "man", section, page, NULL); perror("execlp(xterm)"); @@ -624,7 +625,7 @@ static char hosts_xml_end[] = static int gamt_getstring(GtkWidget *window, char *title, char *message, char *dest, int dlen, int hide) { - GtkWidget *dialog, *label, *entry; + GtkWidget *dialog, *label, *entry, *box; const char *txt; int retval; @@ -648,11 +649,12 @@ static int gamt_getstring(GtkWidget *window, char *title, char *message, if (hide) gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entry); - gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 10); + box = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + gtk_container_add(GTK_CONTAINER(box), label); + gtk_container_add(GTK_CONTAINER(box), entry); #if 0 /* FIXME: doesn't work ... */ - gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 10); + gtk_box_set_spacing(GTK_BOX(box), 10); + gtk_container_set_border_width(GTK_CONTAINER(box), 10); #endif /* show and wait for response */ @@ -779,7 +781,8 @@ static int gamt_connect(struct gamt_window *gamt) static struct gamt_window *gamt_window() { GtkWidget *vbox, *hbox, *frame, *item; - GdkColor color; + VteTerminalCursorBlinkMode blink; + GdkRGBA color; GError *err; gboolean state; struct gamt_window *gamt; @@ -831,7 +834,8 @@ static struct gamt_window *gamt_window() item = gtk_ui_manager_get_widget(gamt->ui, "/MainMenu/ConfigMenu/BlinkCursor"); state = cfg_get_bool(CFG_BLINK, 0); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), state); - vte_terminal_set_cursor_blinks(VTE_TERMINAL(gamt->vte), state); + blink = state ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF; + vte_terminal_set_cursor_blink_mode(VTE_TERMINAL(gamt->vte), blink); /* other widgets */ gamt->status = gtk_label_new("idle"); @@ -841,8 +845,8 @@ static struct gamt_window *gamt_window() GTK_ICON_SIZE_SMALL_TOOLBAR); /* Make a vbox and put stuff in */ - vbox = gtk_vbox_new(FALSE, 1); - hbox = gtk_hbox_new(FALSE, 1); + vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1); + hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); gtk_container_set_border_width(GTK_CONTAINER(vbox), 1); gtk_container_add(GTK_CONTAINER(gamt->win), vbox); item = gtk_ui_manager_get_widget(gamt->ui, "/MainMenu"); @@ -867,13 +871,13 @@ static struct gamt_window *gamt_window() str = cfg_get_str(CFG_FOREGROUND); if (str) { - gdk_color_parse(str, &color); - vte_terminal_set_color_foreground(VTE_TERMINAL(gamt->vte), &color); + gdk_rgba_parse(&color, str); + vte_terminal_set_color_foreground_rgba(VTE_TERMINAL(gamt->vte), &color); } str = cfg_get_str(CFG_BACKGROUND); if (str) { - gdk_color_parse(str, &color); - vte_terminal_set_color_background(VTE_TERMINAL(gamt->vte), &color); + gdk_rgba_parse(&color, str); + vte_terminal_set_color_background_rgba(VTE_TERMINAL(gamt->vte), &color); } return gamt; |