From cbf1311f90d4269d26088a2062669c5457ea4dca Mon Sep 17 00:00:00 2001 From: Logan Rathbone Date: Wed, 10 Feb 2021 15:40:49 -0500 Subject: convert .ui to gtk4; make calendar, color, about build against gtk4. --- src/about.c | 242 ++++++++---------------------------------------------------- 1 file changed, 30 insertions(+), 212 deletions(-) (limited to 'src/about.c') diff --git a/src/about.c b/src/about.c index 627aa1e..e01e0af 100644 --- a/src/about.c +++ b/src/about.c @@ -1,12 +1,15 @@ +/* vim: colorcolumn=80 ts=4 sw=4 + */ /* * about.c * - * Copyright (C) 2002 Sun Microsystems, Inc. - * Copyright (C) 2001 CodeFactory AB - * Copyright (C) 2001, 2002 Anders Carlsson + * Copyright © 2002 Sun Microsystems, Inc. + * Copyright © 2001 CodeFactory AB + * Copyright © 2001, 2002 Anders Carlsson + * Copyright © 2021 Logan Rathbone * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public + * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * @@ -15,7 +18,7 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. @@ -24,12 +27,13 @@ * Anders Carlsson */ -#include "config.h" #include "util.h" #include "zenity.h" -#include + #include +#include + #define GTK_RESPONSE_CREDITS 0 #define ZENITY_HELP_PATH ZENITY_DATADIR "/help/" #define ZENITY_CLOTHES_PATH ZENITY_DATADIR "/clothes/" @@ -39,8 +43,8 @@ static GtkWidget *dialog; -static void zenity_about_dialog_response ( - GtkWidget *widget, int response, gpointer data); +static void zenity_about_dialog_response (GtkWidget *widget, + int response, gpointer data); /* Sync with the people in the THANKS file */ static const gchar *const authors[] = {"Glynn Foster ", @@ -72,197 +76,15 @@ static const char *license[] = { "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " "02110-1301, USA.")}; -#if 0 -static gint -zenity_move_clothes_event (GnomeCanvasItem *item, - GdkEvent *event, - gpointer data) -{ - static double x, y; - double new_x, new_y; - static int dragging; - double item_x, item_y; - - /* set item_[xy] to the event x,y position in the parent's - * item-relative coordinates - */ - - item_x = event->button.x; - item_y = event->button.y; - gnome_canvas_item_w2i (item->parent, &item_x, &item_y); - - switch (event->type) { - case GDK_BUTTON_PRESS: - x = item_x; - y = item_y; - gnome_canvas_item_ungrab (item, event->button.time); - gnome_canvas_item_raise_to_top (item); - dragging = TRUE; - break; - - case GDK_MOTION_NOTIFY: - if (dragging && (event->motion.state & GDK_BUTTON1_MASK)) { - new_x = item_x; - new_y = item_y; - - gnome_canvas_item_move (item, new_x - x, new_y - y); - x = new_x; - y = new_y; - } - break; - - case GDK_BUTTON_RELEASE: - gnome_canvas_item_ungrab (item, event->button.time); - dragging = FALSE; - break; - - default: - break; - } - - return FALSE; -} - -typedef struct -{ - const gchar *filename; - gdouble x, y; -} MonkClothes; - -static const MonkClothes monk_clothes[] = { - {"gnome-tshirt.png", 30.0, 20.0}, - {"sunglasses.png", ZENITY_CANVAS_X - 100.0 , ZENITY_CANVAS_Y - 150.0 }, - {"surfboard.png", 30.0, ZENITY_CANVAS_Y - 200.0}, - {"hawaii-shirt.png", ZENITY_CANVAS_X - 50.0, 20.0} -}; - -static void -zenity_create_clothes (GtkWidget *canvas_board) -{ - GdkPixbuf *pixbuf; - GnomeCanvasItem *canvas_item; - gchar *pixbuf_path; - size_t i; - - for (i = 0; i < G_N_ELEMENTS (monk_clothes); i++) { - pixbuf_path = g_strconcat (ZENITY_CLOTHES_PATH, monk_clothes[i].filename, NULL); - pixbuf = gdk_pixbuf_new_from_file (pixbuf_path, NULL); - - canvas_item = gnome_canvas_item_new (GNOME_CANVAS_GROUP (GNOME_CANVAS (canvas_board)->root), - GNOME_TYPE_CANVAS_PIXBUF, - "x", monk_clothes[i].x, - "y", monk_clothes[i].y, - "pixbuf", pixbuf, - "anchor", GTK_ANCHOR_NW, - NULL); - g_signal_connect (G_OBJECT (canvas_item), "event", - G_CALLBACK (zenity_move_clothes_event), NULL); - } -} - -static GtkWidget * -zenity_create_monk (void) -{ - GtkWidget *canvas_board; - GnomeCanvasItem *canvas_item; - GdkPixbuf *pixbuf; - GdkColor color = { 0, 0xffff, 0xffff, 0xffff }; - - canvas_board = gnome_canvas_new (); - - gnome_canvas_set_scroll_region (GNOME_CANVAS (canvas_board), 0, 0, - ZENITY_CANVAS_X, ZENITY_CANVAS_Y); - - gtk_widget_set_size_request (canvas_board, ZENITY_CANVAS_X, ZENITY_CANVAS_Y); - - gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (canvas_board)), - &color, FALSE, TRUE); - - gtk_widget_modify_bg (GTK_WIDGET (canvas_board), GTK_STATE_NORMAL, &color); - - pixbuf = gdk_pixbuf_new_from_file (ZENITY_CLOTHES_PATH "monk.png", NULL); - - canvas_item = gnome_canvas_item_new (GNOME_CANVAS_GROUP (GNOME_CANVAS (canvas_board)->root), - GNOME_TYPE_CANVAS_PIXBUF, - "x", (ZENITY_CANVAS_X / 2.0)/2.0 + 10.0, - "y", (ZENITY_CANVAS_Y / 2.0)/2.0 - 50.0, - "pixbuf", pixbuf, - "anchor", GTK_ANCHOR_NW, - NULL); - - zenity_create_clothes (canvas_board); - - return canvas_board; -} - -static GtkWidget * -zenity_create_boutique (void) -{ - GtkWidget *window; - GtkWidget *canvas; - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - - zenity_util_set_window_icon (window, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png")); - canvas = zenity_create_monk (); - gtk_container_add (GTK_CONTAINER (window), canvas); - - return window; -} - -static gboolean -zenity_zen_wisdom (GtkDialog *dialog, GdkEventKey *event, gpointer user_data) -{ - static gint string_count; - - if (string_count >= 3) - return FALSE; - - switch (event->keyval) { - case GDK_N: - case GDK_n: - if (string_count == 2) { - GtkWidget *window; - window = zenity_create_boutique (); - gtk_widget_show_all (window); - string_count++; - } else { - string_count = 0; - } - break; - case GDK_Z: - case GDK_z: - if (string_count == 0) - string_count++; - else - string_count = 0; - break; - case GDK_E: - case GDK_e: - if (string_count == 1) - string_count++; - else - string_count = 0; - break; - default: - string_count = 0; - } - - return FALSE; -} -#endif - void -zenity_about (ZenityData *data) { - GdkPixbuf *logo; +zenity_about (ZenityData *data) +{ char *license_trans; - translators = _ ("translator-credits"); - logo = - gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL); + translators = _("translator-credits"); license_trans = g_strconcat ( - _ (license[0]), "\n", _ (license[1]), "\n", _ (license[2]), "\n", NULL); + _(license[0]), "\n", _(license[1]), "\n", _(license[2]), "\n", NULL); dialog = gtk_about_dialog_new (); @@ -272,9 +94,10 @@ zenity_about (ZenityData *data) { "version", VERSION, "copyright", - "Copyright \xc2\xa9 2003 Sun Microsystems", + "Copyright \xc2\xa9 2003 Sun Microsystems\n" + "Copyright \xc2\xa9 2021 Logan Rathbone\n", "comments", - _ ("Display dialog boxes from shell scripts"), + _("Display dialog boxes from shell scripts"), "authors", authors, "documenters", @@ -282,9 +105,7 @@ zenity_about (ZenityData *data) { "translator-credits", translators, "website", - "http://live.gnome.org/Zenity", - "logo", - logo, + "https://gitlab.gnome.org/GNOME/zenity", "wrap-license", TRUE, "license", @@ -293,27 +114,25 @@ zenity_about (ZenityData *data) { g_free (license_trans); - zenity_util_set_window_icon ( - dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png")); + zenity_util_set_window_icon (dialog, + NULL, ZENITY_IMAGE_FULLPATH ("zenity.png")); g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (zenity_about_dialog_response), data); -#if 0 - g_signal_connect (G_OBJECT (dialog), "key_press_event", - G_CALLBACK (zenity_zen_wisdom), NULL); -#endif - - zenity_util_show_dialog (dialog, data->attach); - gtk_main (); + zenity_util_show_dialog (dialog); + zenity_util_gapp_main (GTK_WINDOW (dialog)); } static void -zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) { +zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) +{ ZenityData *zen_data = data; + g_return_if_fail (GTK_IS_WINDOW (GTK_WINDOW(widget))); + switch (response) { case GTK_RESPONSE_CLOSE: zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK); @@ -324,6 +143,5 @@ zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) { zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC); break; } - - gtk_main_quit (); + zenity_util_gapp_quit (GTK_WINDOW(widget)); } -- cgit v1.2.1