summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2015-07-25 12:00:37 +0200
committerGerd Hoffmann <kraxel@redhat.com>2015-12-01 15:43:27 +0100
commitf08799bee9ee53100360d86a47bb71591530158b (patch)
tree65a393e24faf4ea0075d5a2acc60776796265482
parenta75e48e010e92dc5540e2142efc445ccb0ab1a42 (diff)
downloadamtterm-f08799bee9ee53100360d86a47bb71591530158b.tar.gz
switch over to use gtk3
-rw-r--r--GNUmakefile6
-rw-r--r--gamt.c78
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))
diff --git a/gamt.c b/gamt.c
index 7e0b2e4..412bd53 100644
--- a/gamt.c
+++ b/gamt.c
@@ -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;