summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac25
-rw-r--r--docs/reference/Makefile.am2
-rw-r--r--plugins/checkupdate/pluma-check-update-plugin.c25
-rw-r--r--plugins/filebrowser/pluma-file-browser-widget.c8
-rw-r--r--pluma/Makefile.am10
-rw-r--r--pluma/pluma-commands-file-print.c17
-rw-r--r--pluma/pluma-commands.h7
-rw-r--r--pluma/pluma-encodings-combo-box.c4
-rw-r--r--pluma/pluma-io-error-message-area.c98
-rw-r--r--pluma/pluma-message-area.c626
-rw-r--r--pluma/pluma-message-area.h129
-rw-r--r--pluma/pluma-notebook.c4
-rw-r--r--pluma/pluma-panel.c4
-rw-r--r--pluma/pluma-print-job.c2
-rw-r--r--pluma/pluma-progress-message-area.c15
-rw-r--r--pluma/pluma-progress-message-area.h12
-rw-r--r--pluma/pluma-spinner.c989
-rw-r--r--pluma/pluma-spinner.h95
-rw-r--r--pluma/pluma-tab-label.c17
-rw-r--r--pluma/pluma-tab.c70
-rw-r--r--pluma/pluma-tab.h4
-rw-r--r--pluma/pluma-ui.h4
-rw-r--r--pluma/pluma-view.c7
-rw-r--r--pluma/pluma-window.c30
-rwxr-xr-xpluma/smclient/eggdesktopfile.c8
25 files changed, 1 insertions, 2211 deletions
diff --git a/configure.ac b/configure.ac
index 82519b6d..d7bfd702 100644
--- a/configure.ac
+++ b/configure.ac
@@ -280,7 +280,7 @@ AC_MSG_RESULT([$with_gtk])
case "$with_gtk" in
2.0) GTK_API_VERSION=2.0
- GTK_REQUIRED=2.20.0
+ GTK_REQUIRED=2.24.0
;;
3.0) GTK_API_VERSION=3.0
GTK_REQUIRED=3.0.0
@@ -315,29 +315,6 @@ PLUMA_LIBS="$PLUMA_LIBS $X11_LIBS"
AC_SUBST(PLUMA_CFLAGS)
AC_SUBST(PLUMA_LIBS)
-dnl FIXME: Remove this when removing pluma-message-area
-
-if $PKG_CONFIG --atleast-version 2.17.1 gtk+-$GTK_API_VERSION; then
- gtkatleast=
-else
- gtkatleast=no
-fi
-
-AM_CONDITIONAL(BUILD_MESSAGE_AREA, test "$gtkatleast" = "no")
-
-dnl FIXME: Remove this when removing pluma-spinner
-
-if $PKG_CONFIG --atleast-version 2.19.0 gtk+-$GTK_API_VERSION; then
- gtkatleast=
-else
- gtkatleast=no
-fi
-
-AM_CONDITIONAL(BUILD_SPINNER, test "$gtkatleast" = "no")
-if test "$gtkatleast" = "no"; then
- AC_DEFINE([BUILD_SPINNER],[1],[Whether to use PlumaSpinner instead of GtkSpinner])
-fi
-
if test "$os_osx" = "no" &&
test "$os_win32" = "no"; then
PKG_CHECK_MODULES(EGG_SMCLIENT, [
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
index 9b777bcd..0af28ea6 100644
--- a/docs/reference/Makefile.am
+++ b/docs/reference/Makefile.am
@@ -46,13 +46,11 @@ IGNORE_HFILES= \
pluma-documents-panel.h \
pluma-io-error-message-area.h \
pluma-languages-manager.h \
- pluma-message-area.h \
pluma-object-module.h \
pluma-plugin-manager.h \
pluma-plugins-engine.h \
pluma-prefs-manager-private.h \
pluma-session.h \
- pluma-spinner.h \
pluma-ui.h \
pluma-window-private.h \
pluma-output-window.h \
diff --git a/plugins/checkupdate/pluma-check-update-plugin.c b/plugins/checkupdate/pluma-check-update-plugin.c
index 42cd2b41..23253f58 100644
--- a/plugins/checkupdate/pluma-check-update-plugin.c
+++ b/plugins/checkupdate/pluma-check-update-plugin.c
@@ -31,10 +31,6 @@
#include <gio/gio.h>
-#if !GTK_CHECK_VERSION(2, 17, 1)
-#include <pluma/pluma-message-area.h>
-#endif
-
#define SETTINGS_SCHEMA "org.mate.pluma.plugins.checkupdate"
#define SETTINGS_IGNORE_VERSION "ignore-version"
@@ -141,15 +137,10 @@ static void
set_contents (GtkWidget *infobar,
GtkWidget *contents)
{
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_contents (PLUMA_MESSAGE_AREA (infobar),
- contents);
-#else
GtkWidget *content_area;
content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar));
gtk_container_add (GTK_CONTAINER (content_area), contents);
-#endif
}
static void
@@ -278,21 +269,6 @@ create_infobar (PlumaWindow *window,
GtkWidget *infobar;
gchar *message;
-#if !GTK_CHECK_VERSION (2, 17, 1)
- infobar = pluma_message_area_new ();
-
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (infobar),
- _("_Download"),
- GTK_STOCK_SAVE,
- GTK_RESPONSE_YES);
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (infobar),
- _("_Ignore Version"),
- GTK_STOCK_DISCARD,
- GTK_RESPONSE_NO);
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (infobar),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
-#else
GtkWidget *button;
infobar = gtk_info_bar_new ();
@@ -319,7 +295,6 @@ create_infobar (PlumaWindow *window,
gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar),
GTK_MESSAGE_INFO);
-#endif
message = g_strdup_printf ("%s (%s)", _("There is a new version of pluma"), version);
set_message_area_text_and_icon (infobar,
diff --git a/plugins/filebrowser/pluma-file-browser-widget.c b/plugins/filebrowser/pluma-file-browser-widget.c
index 6e6be102..5e975d9a 100644
--- a/plugins/filebrowser/pluma-file-browser-widget.c
+++ b/plugins/filebrowser/pluma-file-browser-widget.c
@@ -997,11 +997,7 @@ create_toolbar (PlumaFileBrowserWidget * obj,
"DirectoryPrevious");
g_object_set (action, "is_important", TRUE, "short_label",
_("Previous location"), NULL);
-#if GTK_CHECK_VERSION (2, 16, 0)
gtk_activatable_set_related_action (GTK_ACTIVATABLE (widget), action);
-#else
- gtk_action_connect_proxy (action, widget);
-#endif
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (widget), 0);
/* Next directory menu tool item */
@@ -1022,11 +1018,7 @@ create_toolbar (PlumaFileBrowserWidget * obj,
"DirectoryNext");
g_object_set (action, "is_important", TRUE, "short_label",
_("Previous location"), NULL);
-#if GTK_CHECK_VERSION (2, 16, 0)
gtk_activatable_set_related_action (GTK_ACTIVATABLE (widget), action);
-#else
- gtk_action_connect_proxy (action, widget);
-#endif
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (widget), 1);
gtk_box_pack_start (GTK_BOX (obj), toolbar, FALSE, FALSE, 0);
diff --git a/pluma/Makefile.am b/pluma/Makefile.am
index a9237799..bae5cd01 100644
--- a/pluma/Makefile.am
+++ b/pluma/Makefile.am
@@ -238,14 +238,4 @@ else
BACON_DIR=
endif
-if BUILD_MESSAGE_AREA
-libpluma_la_SOURCES += pluma-message-area.c
-INST_H_FILES += pluma-message-area.h
-endif
-
-if BUILD_SPINNER
-libpluma_la_SOURCES += pluma-spinner.c
-NOINST_H_FILES += pluma-spinner.h
-endif
-
-include $(top_srcdir)/git.mk
diff --git a/pluma/pluma-commands-file-print.c b/pluma/pluma-commands-file-print.c
index bcee6f61..d7dfc6f2 100644
--- a/pluma/pluma-commands-file-print.c
+++ b/pluma/pluma-commands-file-print.c
@@ -42,23 +42,6 @@
#include "pluma-tab.h"
#include "pluma-debug.h"
-#if !GTK_CHECK_VERSION (2, 17, 4)
-void
-_pluma_cmd_file_page_setup (GtkAction *action,
- PlumaWindow *window)
-{
- PlumaTab *tab;
-
- pluma_debug (DEBUG_COMMANDS);
-
- tab = pluma_window_get_active_tab (window);
- if (tab == NULL)
- return;
-
- _pluma_tab_page_setup (tab);
-}
-#endif
-
void
_pluma_cmd_file_print_preview (GtkAction *action,
PlumaWindow *window)
diff --git a/pluma/pluma-commands.h b/pluma/pluma-commands.h
index 0e7f8f94..37e4df8d 100644
--- a/pluma/pluma-commands.h
+++ b/pluma/pluma-commands.h
@@ -154,13 +154,6 @@ void _pluma_cmd_file_close_tab (PlumaTab *tab,
void _pluma_cmd_file_save_documents_list (PlumaWindow *window,
GList *docs);
-
-#if !GTK_CHECK_VERSION (2, 17, 4)
-void _pluma_cmd_file_page_setup (GtkAction *action,
- PlumaWindow *window);
-#endif
-
-
G_END_DECLS
#endif /* __PLUMA_COMMANDS_H__ */
diff --git a/pluma/pluma-encodings-combo-box.c b/pluma/pluma-encodings-combo-box.c
index 9d7fcc5e..cb056d03 100644
--- a/pluma/pluma-encodings-combo-box.c
+++ b/pluma/pluma-encodings-combo-box.c
@@ -191,11 +191,7 @@ add_or_remove (PlumaEncodingsComboBox *menu,
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (menu));
-#if !GTK_CHECK_VERSION (2, 18, 0)
- if (!GTK_WIDGET_TOPLEVEL (toplevel))
-#else
if (!gtk_widget_is_toplevel (toplevel))
-#endif
toplevel = NULL;
g_signal_handler_block (menu, menu->priv->changed_id);
diff --git a/pluma/pluma-io-error-message-area.c b/pluma/pluma-io-error-message-area.c
index 14ed9761..4cf0ac9b 100644
--- a/pluma/pluma-io-error-message-area.c
+++ b/pluma/pluma-io-error-message-area.c
@@ -48,10 +48,6 @@
#include "pluma-prefs-manager.h"
#include <pluma/pluma-encodings-combo-box.h>
-#if !GTK_CHECK_VERSION (2, 17, 1)
-#include "pluma-message-area.h"
-#endif
-
#define MAX_URI_IN_DIALOG_LENGTH 50
static gboolean
@@ -87,18 +83,12 @@ static void
set_contents (GtkWidget *area,
GtkWidget *contents)
{
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_contents (PLUMA_MESSAGE_AREA (area),
- contents);
-#else
GtkWidget *content_area;
content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (area));
gtk_container_add (GTK_CONTAINER (content_area), contents);
-#endif
}
-#if GTK_CHECK_VERSION (2, 17, 1)
static void
info_bar_add_stock_button_with_text (GtkInfoBar *infobar,
const gchar *text,
@@ -112,7 +102,6 @@ info_bar_add_stock_button_with_text (GtkInfoBar *infobar,
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON (button), image);
}
-#endif
static void
set_message_area_text_and_icon (GtkWidget *message_area,
@@ -172,17 +161,11 @@ create_io_loading_error_message_area (const gchar *primary_text,
{
GtkWidget *message_area;
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new_with_buttons (
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- NULL);
-#else
message_area = gtk_info_bar_new_with_buttons (
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_ERROR);
-#endif
set_message_area_text_and_icon (message_area,
"gtk-dialog-error",
@@ -191,17 +174,10 @@ create_io_loading_error_message_area (const gchar *primary_text,
if (recoverable_error)
{
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (message_area),
- _("_Retry"),
- GTK_STOCK_REFRESH,
- GTK_RESPONSE_OK);
-#else
info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area),
_("_Retry"),
GTK_STOCK_REFRESH,
GTK_RESPONSE_OK);
-#endif
}
return message_area;
@@ -498,30 +474,6 @@ create_conversion_error_message_area (const gchar *primary_text,
GtkWidget *primary_label;
GtkWidget *secondary_label;
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new ();
-
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (message_area),
- _("_Retry"),
- GTK_STOCK_REDO,
- GTK_RESPONSE_OK);
-
- if (edit_anyway)
- {
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("Edit Any_way"),
- GTK_RESPONSE_YES);
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("D_on't Edit"),
- GTK_RESPONSE_NO);
- }
- else
- {
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
- }
-#else
message_area = gtk_info_bar_new ();
info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area),
@@ -552,7 +504,6 @@ create_conversion_error_message_area (const gchar *primary_text,
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_ERROR);
}
-#endif
hbox_content = gtk_hbox_new (FALSE, 8);
@@ -765,11 +716,7 @@ pluma_conversion_error_message_area_get_encoding (GtkWidget *message_area)
{
gpointer menu;
-#if !GTK_CHECK_VERSION (2, 17, 1)
- g_return_val_if_fail (PLUMA_IS_MESSAGE_AREA (message_area), NULL);
-#else
g_return_val_if_fail (GTK_IS_INFO_BAR (message_area), NULL);
-#endif
menu = g_object_get_data (G_OBJECT (message_area),
"pluma-message-area-encoding-menu");
@@ -809,15 +756,6 @@ pluma_file_already_open_warning_message_area_new (const gchar *uri)
uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display);
g_free (temp_uri_for_display);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new ();
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("Edit Any_way"),
- GTK_RESPONSE_YES);
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("D_on't Edit"),
- GTK_RESPONSE_CANCEL);
-#else
message_area = gtk_info_bar_new ();
gtk_info_bar_add_button (GTK_INFO_BAR (message_area),
/* Translators: the access key chosen for this string should be
@@ -831,7 +769,6 @@ pluma_file_already_open_warning_message_area_new (const gchar *uri)
GTK_RESPONSE_CANCEL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_WARNING);
-#endif
hbox_content = gtk_hbox_new (FALSE, 8);
@@ -912,16 +849,6 @@ pluma_externally_modified_saving_error_message_area_new (
uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display);
g_free (temp_uri_for_display);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new ();
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (message_area),
- _("S_ave Anyway"),
- GTK_STOCK_SAVE,
- GTK_RESPONSE_YES);
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("D_on't Save"),
- GTK_RESPONSE_CANCEL);
-#else
message_area = gtk_info_bar_new ();
info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area),
@@ -933,7 +860,6 @@ pluma_externally_modified_saving_error_message_area_new (
GTK_RESPONSE_CANCEL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_WARNING);
-#endif
hbox_content = gtk_hbox_new (FALSE, 8);
@@ -1018,16 +944,6 @@ pluma_no_backup_saving_error_message_area_new (const gchar *uri,
uri_for_display = g_markup_printf_escaped ("<i>%s</i>", temp_uri_for_display);
g_free (temp_uri_for_display);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new ();
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (message_area),
- _("S_ave Anyway"),
- GTK_STOCK_SAVE,
- GTK_RESPONSE_YES);
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- _("D_on't Save"),
- GTK_RESPONSE_CANCEL);
-#else
message_area = gtk_info_bar_new ();
info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area),
@@ -1039,7 +955,6 @@ pluma_no_backup_saving_error_message_area_new (const gchar *uri,
GTK_RESPONSE_CANCEL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_WARNING);
-#endif
hbox_content = gtk_hbox_new (FALSE, 8);
@@ -1253,18 +1168,6 @@ pluma_externally_modified_message_area_new (const gchar *uri,
else
secondary_text = _("Do you want to reload the file?");
-#if !GTK_CHECK_VERSION (2, 17, 1)
- message_area = pluma_message_area_new ();
-
- pluma_message_area_add_stock_button_with_text (PLUMA_MESSAGE_AREA (message_area),
- _("_Reload"),
- GTK_STOCK_REFRESH,
- GTK_RESPONSE_OK);
-
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (message_area),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
-#else
message_area = gtk_info_bar_new ();
info_bar_add_stock_button_with_text (GTK_INFO_BAR (message_area),
@@ -1276,7 +1179,6 @@ pluma_externally_modified_message_area_new (const gchar *uri,
GTK_RESPONSE_CANCEL);
gtk_info_bar_set_message_type (GTK_INFO_BAR (message_area),
GTK_MESSAGE_WARNING);
-#endif
set_message_area_text_and_icon (message_area,
"gtk-dialog-warning",
diff --git a/pluma/pluma-message-area.c b/pluma/pluma-message-area.c
deleted file mode 100644
index 9aad106e..00000000
--- a/pluma/pluma-message-area.c
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
- * pluma-message-area.c
- * This file is part of pluma
- *
- * Copyright (C) 2005 - Paolo Maggi
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * Modified by the pluma Team, 2005. See the AUTHORS file for a
- * list of people on the pluma Team.
- * See the ChangeLog files for a list of changes.
- *
- * $Id$
- */
-
-/* TODO: Style properties */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include <gdk/gdk.h>
-#include <gdk/gdkkeysyms.h>
-
-#include "pluma-message-area.h"
-
-#define PLUMA_MESSAGE_AREA_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), \
- PLUMA_TYPE_MESSAGE_AREA, \
- PlumaMessageAreaPrivate))
-
-struct _PlumaMessageAreaPrivate
-{
- GtkWidget *main_hbox;
-
- GtkWidget *contents;
- GtkWidget *action_area;
-
- gboolean changing_style;
-};
-
-typedef struct _ResponseData ResponseData;
-
-struct _ResponseData
-{
- gint response_id;
-};
-
-enum {
- RESPONSE,
- CLOSE,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL];
-
-G_DEFINE_TYPE(PlumaMessageArea, pluma_message_area, GTK_TYPE_HBOX)
-
-
-static void
-pluma_message_area_finalize (GObject *object)
-{
- /*
- PlumaMessageArea *message_area = PLUMA_MESSAGE_AREA (object);
- */
-
- G_OBJECT_CLASS (pluma_message_area_parent_class)->finalize (object);
-}
-
-static ResponseData *
-get_response_data (GtkWidget *widget,
- gboolean create)
-{
- ResponseData *ad = g_object_get_data (G_OBJECT (widget),
- "pluma-message-area-response-data");
-
- if (ad == NULL && create)
- {
- ad = g_new (ResponseData, 1);
-
- g_object_set_data_full (G_OBJECT (widget),
- "pluma-message-area-response-data",
- ad,
- g_free);
- }
-
- return ad;
-}
-
-static GtkWidget *
-find_button (PlumaMessageArea *message_area,
- gint response_id)
-{
- GList *children, *tmp_list;
- GtkWidget *child = NULL;
-
- children = gtk_container_get_children (
- GTK_CONTAINER (message_area->priv->action_area));
-
- for (tmp_list = children; tmp_list; tmp_list = tmp_list->next)
- {
- ResponseData *rd = get_response_data (tmp_list->data, FALSE);
-
- if (rd && rd->response_id == response_id)
- {
- child = tmp_list->data;
- break;
- }
- }
-
- g_list_free (children);
-
- return child;
-}
-
-static void
-pluma_message_area_close (PlumaMessageArea *message_area)
-{
- if (!find_button (message_area, GTK_RESPONSE_CANCEL))
- return;
-
- /* emit response signal */
- pluma_message_area_response (PLUMA_MESSAGE_AREA (message_area),
- GTK_RESPONSE_CANCEL);
-}
-
-static gboolean
-paint_message_area (GtkWidget *widget,
- GdkEventExpose *event,
- gpointer user_data)
-{
- gtk_paint_flat_box (widget->style,
- widget->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_OUT,
- NULL,
- widget,
- "tooltip",
- widget->allocation.x + 1,
- widget->allocation.y + 1,
- widget->allocation.width - 2,
- widget->allocation.height - 2);
-
- return FALSE;
-}
-
-static void
-pluma_message_area_class_init (PlumaMessageAreaClass *klass)
-{
- GObjectClass *object_class;
- GtkBindingSet *binding_set;
-
- object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = pluma_message_area_finalize;
-
- klass->close = pluma_message_area_close;
-
- g_type_class_add_private (object_class, sizeof(PlumaMessageAreaPrivate));
-
- signals[RESPONSE] = g_signal_new ("response",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (PlumaMessageAreaClass, response),
- NULL, NULL,
- g_cclosure_marshal_VOID__INT,
- G_TYPE_NONE, 1,
- G_TYPE_INT);
-
- signals[CLOSE] = g_signal_new ("close",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (PlumaMessageAreaClass, close),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- binding_set = gtk_binding_set_by_class (klass);
-
- gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "close", 0);
-}
-
-static void
-style_set (GtkWidget *widget,
- GtkStyle *prev_style,
- PlumaMessageArea *message_area)
-{
- GtkWidget *window;
- GtkStyle *style;
-
- if (message_area->priv->changing_style)
- return;
-
- /* This is a hack needed to use the tooltip background color */
- window = gtk_window_new (GTK_WINDOW_POPUP);
- gtk_widget_set_name (window, "gtk-tooltip");
- gtk_widget_ensure_style (window);
- style = gtk_widget_get_style (window);
-
- message_area->priv->changing_style = TRUE;
- gtk_widget_set_style (GTK_WIDGET (message_area), style);
- message_area->priv->changing_style = FALSE;
-
- gtk_widget_destroy (window);
-
- gtk_widget_queue_draw (GTK_WIDGET (message_area));
-}
-
-static void
-pluma_message_area_init (PlumaMessageArea *message_area)
-{
- message_area->priv = PLUMA_MESSAGE_AREA_GET_PRIVATE (message_area);
-
- message_area->priv->main_hbox = gtk_hbox_new (FALSE, 16); /* FIXME: use style properties */
- gtk_widget_show (message_area->priv->main_hbox);
- gtk_container_set_border_width (GTK_CONTAINER (message_area->priv->main_hbox),
- 8); /* FIXME: use style properties */
-
- message_area->priv->action_area = gtk_vbox_new (TRUE, 10); /* FIXME: use style properties */
- gtk_widget_show (message_area->priv->action_area);
- gtk_box_pack_end (GTK_BOX (message_area->priv->main_hbox),
- message_area->priv->action_area,
- FALSE,
- TRUE,
- 0);
-
- gtk_box_pack_start (GTK_BOX (message_area),
- message_area->priv->main_hbox,
- TRUE,
- TRUE,
- 0);
-
- gtk_widget_set_app_paintable (GTK_WIDGET (message_area), TRUE);
-
- g_signal_connect (message_area,
- "expose-event",
- G_CALLBACK (paint_message_area),
- NULL);
-
- /* Note that we connect to style-set on one of the internal
- * widgets, not on the message area itself, since gtk does
- * not deliver any further style-set signals for a widget on
- * which the style has been forced with gtk_widget_set_style() */
- g_signal_connect (message_area->priv->main_hbox,
- "style-set",
- G_CALLBACK (style_set),
- message_area);
-}
-
-static gint
-get_response_for_widget (PlumaMessageArea *message_area,
- GtkWidget *widget)
-{
- ResponseData *rd;
-
- rd = get_response_data (widget, FALSE);
- if (!rd)
- return GTK_RESPONSE_NONE;
- else
- return rd->response_id;
-}
-
-static void
-action_widget_activated (GtkWidget *widget, PlumaMessageArea *message_area)
-{
- gint response_id;
-
- response_id = get_response_for_widget (message_area, widget);
-
- pluma_message_area_response (message_area, response_id);
-}
-
-void
-pluma_message_area_add_action_widget (PlumaMessageArea *message_area,
- GtkWidget *child,
- gint response_id)
-{
- ResponseData *ad;
- guint signal_id;
-
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
- g_return_if_fail (GTK_IS_WIDGET (child));
-
- ad = get_response_data (child, TRUE);
-
- ad->response_id = response_id;
-
- if (GTK_IS_BUTTON (child))
- signal_id = g_signal_lookup ("clicked", GTK_TYPE_BUTTON);
- else
- signal_id = GTK_WIDGET_GET_CLASS (child)->activate_signal;
-
- if (signal_id)
- {
- GClosure *closure;
-
- closure = g_cclosure_new_object (G_CALLBACK (action_widget_activated),
- G_OBJECT (message_area));
-
- g_signal_connect_closure_by_id (child,
- signal_id,
- 0,
- closure,
- FALSE);
- }
- else
- g_warning ("Only 'activatable' widgets can be packed into the action area of a PlumaMessageArea");
-
- if (response_id != GTK_RESPONSE_HELP)
- gtk_box_pack_start (GTK_BOX (message_area->priv->action_area),
- child,
- FALSE,
- FALSE,
- 0);
- else
- gtk_box_pack_end (GTK_BOX (message_area->priv->action_area),
- child,
- FALSE,
- FALSE,
- 0);
-}
-
-/**
- * pluma_message_area_set_contents:
- * @message_area: a #PlumaMessageArea
- * @contents: widget you want to add to the contents area
- *
- * Adds the @contents widget to the contents area of #PlumaMessageArea.
- */
-void
-pluma_message_area_set_contents (PlumaMessageArea *message_area,
- GtkWidget *contents)
-{
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
- g_return_if_fail (GTK_IS_WIDGET (contents));
-
- message_area->priv->contents = contents;
- gtk_box_pack_start (GTK_BOX (message_area->priv->main_hbox),
- message_area->priv->contents,
- TRUE,
- TRUE,
- 0);
-}
-
-/**
- * pluma_message_area_add_button:
- * @message_area: a #PlumaMessageArea
- * @button_text: text of button, or stock ID
- * @response_id: response ID for the button
- *
- * Adds a button with the given text (or a stock button, if button_text is a stock ID)
- * and sets things up so that clicking the button will emit the "response" signal
- * with the given response_id. The button is appended to the end of the message area's
- * action area. The button widget is returned, but usually you don't need it.
- *
- * Returns: the button widget that was added
- */
-GtkWidget*
-pluma_message_area_add_button (PlumaMessageArea *message_area,
- const gchar *button_text,
- gint response_id)
-{
- GtkWidget *button;
-
- g_return_val_if_fail (PLUMA_IS_MESSAGE_AREA (message_area), NULL);
- g_return_val_if_fail (button_text != NULL, NULL);
-
- button = gtk_button_new_from_stock (button_text);
-
- gtk_widget_set_can_default (button, TRUE);
-
- gtk_widget_show (button);
-
- pluma_message_area_add_action_widget (message_area,
- button,
- response_id);
-
- return button;
-}
-
-static void
-add_buttons_valist (PlumaMessageArea *message_area,
- const gchar *first_button_text,
- va_list args)
-{
- const gchar* text;
- gint response_id;
-
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
-
- if (first_button_text == NULL)
- return;
-
- text = first_button_text;
- response_id = va_arg (args, gint);
-
- while (text != NULL)
- {
- pluma_message_area_add_button (message_area,
- text,
- response_id);
-
- text = va_arg (args, gchar*);
- if (text == NULL)
- break;
-
- response_id = va_arg (args, int);
- }
-}
-
-/**
- * pluma_message_area_add_buttons:
- * @message_area: a #PlumaMessageArea
- * @first_button_text: button text or stock ID
- * @...: response ID for first button, then more text-response_id pairs
- *
- * Adds more buttons, same as calling pluma_message_area_add_button() repeatedly.
- * The variable argument list should be NULL-terminated as with
- * pluma_message_area_new_with_buttons(). Each button must have both text and response ID.
- */
-void
-pluma_message_area_add_buttons (PlumaMessageArea *message_area,
- const gchar *first_button_text,
- ...)
-{
- va_list args;
-
- va_start (args, first_button_text);
-
- add_buttons_valist (message_area,
- first_button_text,
- args);
-
- va_end (args);
-}
-
-/**
- * pluma_message_area_new:
- *
- * Creates a new #PlumaMessageArea object.
- *
- * Returns: a new #PlumaMessageArea object
- */
-GtkWidget *
-pluma_message_area_new (void)
-{
- return g_object_new (PLUMA_TYPE_MESSAGE_AREA, NULL);
-}
-
-/**
- * pluma_message_area_new_with_buttons:
- * @first_button_text: stock ID or text to go in first button, or NULL
- * @...: response ID for first button, then additional buttons, ending with NULL
- *
- * Creates a new #PlumaMessageArea with buttons. Button text/response ID pairs
- * should be listed, with a NULL pointer ending the list. Button text can be either
- * a stock ID such as GTK_STOCK_OK, or some arbitrary text. A response ID can be any
- * positive number, or one of the values in the GtkResponseType enumeration. If
- * the user clicks one of these dialog buttons, PlumaMessageArea will emit the "response"
- * signal with the corresponding response ID.
- *
- * Returns: a new #PlumaMessageArea
- */
-GtkWidget *
-pluma_message_area_new_with_buttons (const gchar *first_button_text,
- ...)
-{
- PlumaMessageArea *message_area;
- va_list args;
-
- message_area = PLUMA_MESSAGE_AREA (pluma_message_area_new ());
-
- va_start (args, first_button_text);
-
- add_buttons_valist (message_area,
- first_button_text,
- args);
-
- va_end (args);
-
- return GTK_WIDGET (message_area);
-}
-
-/**
- * pluma_message_area_set_response_sensitive:
- * @message_area: a #PlumaMessageArea
- * @response_id: a response ID
- * @setting: TRUE for sensitive
- *
- * Calls gtk_widget_set_sensitive (widget, setting) for each widget in the dialog's
- * action area with the given response_id. A convenient way to sensitize/desensitize
- * dialog buttons.
- */
-void
-pluma_message_area_set_response_sensitive (PlumaMessageArea *message_area,
- gint response_id,
- gboolean setting)
-{
- GList *children;
- GList *tmp_list;
-
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
-
- children = gtk_container_get_children (GTK_CONTAINER (message_area->priv->action_area));
-
- tmp_list = children;
- while (tmp_list != NULL)
- {
- GtkWidget *widget = tmp_list->data;
- ResponseData *rd = get_response_data (widget, FALSE);
-
- if (rd && rd->response_id == response_id)
- gtk_widget_set_sensitive (widget, setting);
-
- tmp_list = g_list_next (tmp_list);
- }
-
- g_list_free (children);
-}
-
-/**
- * pluma_message_area_set_default_response:
- * @message_area: a #PlumaMessageArea
- * @response_id: a response ID
- *
- * Sets the last widget in the message area's action area with the given response_id
- * as the default widget for the dialog. Pressing "Enter" normally activates the
- * default widget.
- */
-void
-pluma_message_area_set_default_response (PlumaMessageArea *message_area,
- gint response_id)
-{
- GList *children;
- GList *tmp_list;
-
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
-
- children = gtk_container_get_children (GTK_CONTAINER (message_area->priv->action_area));
-
- tmp_list = children;
- while (tmp_list != NULL)
- {
- GtkWidget *widget = tmp_list->data;
- ResponseData *rd = get_response_data (widget, FALSE);
-
- if (rd && rd->response_id == response_id)
- gtk_widget_grab_default (widget);
-
- tmp_list = g_list_next (tmp_list);
- }
-
- g_list_free (children);
-}
-
-/**
- * pluma_message_area_set_default_response:
- * @message_area: a #PlumaMessageArea
- * @response_id: a response ID
- *
- * Emits the 'response' signal with the given @response_id.
- */
-void
-pluma_message_area_response (PlumaMessageArea *message_area,
- gint response_id)
-{
- g_return_if_fail (PLUMA_IS_MESSAGE_AREA (message_area));
-
- g_signal_emit (message_area,
- signals[RESPONSE],
- 0,
- response_id);
-}
-
-/**
- * pluma_message_area_add_stock_button_with_text:
- * @message_area: a #PlumaMessageArea
- * @text: the text to visualize in the button
- * @stock_id: the stock ID of the button
- * @response_id: a response ID
- *
- * Same as pluma_message_area_add_button() but with a specific text.
- */
-GtkWidget *
-pluma_message_area_add_stock_button_with_text (PlumaMessageArea *message_area,
- const gchar *text,
- const gchar *stock_id,
- gint response_id)
-{
- GtkWidget *button;
-
- g_return_val_if_fail (PLUMA_IS_MESSAGE_AREA (message_area), NULL);
- g_return_val_if_fail (text != NULL, NULL);
- g_return_val_if_fail (stock_id != NULL, NULL);
-
- button = gtk_button_new_with_mnemonic (text);
- gtk_button_set_image (GTK_BUTTON (button),
- gtk_image_new_from_stock (stock_id,
- GTK_ICON_SIZE_BUTTON));
-
- gtk_widget_set_can_default (button, TRUE);
-
- gtk_widget_show (button);
-
- pluma_message_area_add_action_widget (message_area,
- button,
- response_id);
-
- return button;
-}
-
diff --git a/pluma/pluma-message-area.h b/pluma/pluma-message-area.h
deleted file mode 100644
index 260fa879..00000000
--- a/pluma/pluma-message-area.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * pluma-message-area.h
- * This file is part of pluma
- *
- * Copyright (C) 2005 - Paolo Maggi
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * Modified by the pluma Team, 2005. See the AUTHORS file for a
- * list of people on the pluma Team.
- * See the ChangeLog files for a list of changes.
- *
- * $Id$
- */
-
-#ifndef __PLUMA_MESSAGE_AREA_H__
-#define __PLUMA_MESSAGE_AREA_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-/*
- * Type checking and casting macros
- */
-#define PLUMA_TYPE_MESSAGE_AREA (pluma_message_area_get_type())
-#define PLUMA_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PLUMA_TYPE_MESSAGE_AREA, PlumaMessageArea))
-#define PLUMA_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PLUMA_TYPE_MESSAGE_AREA, PlumaMessageAreaClass))
-#define PLUMA_IS_MESSAGE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PLUMA_TYPE_MESSAGE_AREA))
-#define PLUMA_IS_MESSAGE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUMA_TYPE_MESSAGE_AREA))
-#define PLUMA_MESSAGE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PLUMA_TYPE_MESSAGE_AREA, PlumaMessageAreaClass))
-
-/* Private structure type */
-typedef struct _PlumaMessageAreaPrivate PlumaMessageAreaPrivate;
-
-/*
- * Main object structure
- */
-typedef struct _PlumaMessageArea PlumaMessageArea;
-
-struct _PlumaMessageArea
-{
- GtkHBox parent;
-
- /*< private > */
- PlumaMessageAreaPrivate *priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _PlumaMessageAreaClass PlumaMessageAreaClass;
-
-struct _PlumaMessageAreaClass
-{
- GtkHBoxClass parent_class;
-
- /* Signals */
- void (* response) (PlumaMessageArea *message_area, gint response_id);
-
- /* Keybinding signals */
- void (* close) (PlumaMessageArea *message_area);
-
- /* Padding for future expansion */
- void (*_pluma_reserved1) (void);
- void (*_pluma_reserved2) (void);
-};
-
-/*
- * Public methods
- */
-GType pluma_message_area_get_type (void) G_GNUC_CONST;
-
-GtkWidget *pluma_message_area_new (void);
-
-GtkWidget *pluma_message_area_new_with_buttons (const gchar *first_button_text,
- ...);
-
-void pluma_message_area_set_contents (PlumaMessageArea *message_area,
- GtkWidget *contents);
-
-void pluma_message_area_add_action_widget (PlumaMessageArea *message_area,
- GtkWidget *child,
- gint response_id);
-
-GtkWidget *pluma_message_area_add_button (PlumaMessageArea *message_area,
- const gchar *button_text,
- gint response_id);
-
-GtkWidget *pluma_message_area_add_stock_button_with_text
- (PlumaMessageArea *message_area,
- const gchar *text,
- const gchar *stock_id,
- gint response_id);
-
-void pluma_message_area_add_buttons (PlumaMessageArea *message_area,
- const gchar *first_button_text,
- ...);
-
-void pluma_message_area_set_response_sensitive
- (PlumaMessageArea *message_area,
- gint response_id,
- gboolean setting);
-void pluma_message_area_set_default_response
- (PlumaMessageArea *message_area,
- gint response_id);
-
-/* Emit response signal */
-void pluma_message_area_response (PlumaMessageArea *message_area,
- gint response_id);
-
-G_END_DECLS
-
-#endif /* __PLUMA_MESSAGE_AREA_H__ */
diff --git a/pluma/pluma-notebook.c b/pluma/pluma-notebook.c
index 8842cf02..01164c4c 100644
--- a/pluma/pluma-notebook.c
+++ b/pluma/pluma-notebook.c
@@ -49,10 +49,6 @@
#include "pluma-marshal.h"
#include "pluma-window.h"
-#ifdef BUILD_SPINNER
-#include "pluma-spinner.h"
-#endif
-
#define AFTER_ALL_TABS -1
#define NOT_IN_APP_WINDOWS -2
diff --git a/pluma/pluma-panel.c b/pluma/pluma-panel.c
index 5271eeb7..d8467a0c 100644
--- a/pluma/pluma-panel.c
+++ b/pluma/pluma-panel.c
@@ -145,11 +145,7 @@ static void
pluma_panel_focus_document (PlumaPanel *panel)
{
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (panel));
-#if !GTK_CHECK_VERSION (2, 18, 0)
- if (GTK_WIDGET_TOPLEVEL (toplevel) && PLUMA_IS_WINDOW (toplevel))
-#else
if (gtk_widget_is_toplevel (toplevel) && PLUMA_IS_WINDOW (toplevel))
-#endif
{
PlumaView *view;
diff --git a/pluma/pluma-print-job.c b/pluma/pluma-print-job.c
index 72b24154..e1f9f7f8 100644
--- a/pluma/pluma-print-job.c
+++ b/pluma/pluma-print-job.c
@@ -761,9 +761,7 @@ pluma_print_job_print (PlumaPrintJob *job,
gtk_print_operation_set_job_name (priv->operation, job_name);
g_free (job_name);
-#if GTK_CHECK_VERSION (2, 17, 4)
gtk_print_operation_set_embed_page_setup (priv->operation, TRUE);
-#endif
gtk_print_operation_set_custom_tab_label (priv->operation,
_("Text Editor"));
diff --git a/pluma/pluma-progress-message-area.c b/pluma/pluma-progress-message-area.c
index c0520134..bf1f8351 100644
--- a/pluma/pluma-progress-message-area.c
+++ b/pluma/pluma-progress-message-area.c
@@ -55,26 +55,16 @@ struct _PlumaProgressMessageAreaPrivate
GtkWidget *progress;
};
-#if !GTK_CHECK_VERSION (2, 17, 1)
-G_DEFINE_TYPE(PlumaProgressMessageArea, pluma_progress_message_area, PLUMA_TYPE_MESSAGE_AREA)
-#else
G_DEFINE_TYPE(PlumaProgressMessageArea, pluma_progress_message_area, GTK_TYPE_INFO_BAR)
-#endif
static void
pluma_progress_message_area_set_has_cancel_button (PlumaProgressMessageArea *area,
gboolean has_button)
{
if (has_button)
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_add_button (PLUMA_MESSAGE_AREA (area),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
-#else
gtk_info_bar_add_button (GTK_INFO_BAR (area),
GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL);
-#endif
g_object_notify (G_OBJECT (area), "has-cancel-button");
}
@@ -174,15 +164,10 @@ pluma_progress_message_area_init (PlumaProgressMessageArea *area)
gtk_box_pack_start (GTK_BOX (vbox), area->priv->progress, TRUE, FALSE, 0);
gtk_widget_set_size_request (area->priv->progress, -1, 15);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_contents (PLUMA_MESSAGE_AREA (area),
- vbox);
-#else
GtkWidget *content;
content = gtk_info_bar_get_content_area (GTK_INFO_BAR (area));
gtk_container_add (GTK_CONTAINER (content), vbox);
-#endif
}
GtkWidget *
diff --git a/pluma/pluma-progress-message-area.h b/pluma/pluma-progress-message-area.h
index b94b89a4..964746bd 100644
--- a/pluma/pluma-progress-message-area.h
+++ b/pluma/pluma-progress-message-area.h
@@ -31,11 +31,7 @@
#ifndef __PLUMA_PROGRESS_MESSAGE_AREA_H__
#define __PLUMA_PROGRESS_MESSAGE_AREA_H__
-#if !GTK_CHECK_VERSION (2, 17, 1)
-#include <pluma/pluma-message-area.h>
-#else
#include <gtk/gtk.h>
-#endif
G_BEGIN_DECLS
@@ -59,11 +55,7 @@ typedef struct _PlumaProgressMessageArea PlumaProgressMessageArea;
struct _PlumaProgressMessageArea
{
-#if !GTK_CHECK_VERSION (2, 17, 1)
- PlumaMessageArea parent;
-#else
GtkInfoBar parent;
-#endif
/*< private > */
PlumaProgressMessageAreaPrivate *priv;
@@ -76,11 +68,7 @@ typedef struct _PlumaProgressMessageAreaClass PlumaProgressMessageAreaClass;
struct _PlumaProgressMessageAreaClass
{
-#if !GTK_CHECK_VERSION (2, 17, 1)
- PlumaMessageAreaClass parent_class;
-#else
GtkInfoBarClass parent_class;
-#endif
};
/*
diff --git a/pluma/pluma-spinner.c b/pluma/pluma-spinner.c
deleted file mode 100644
index eea394f0..00000000
--- a/pluma/pluma-spinner.c
+++ /dev/null
@@ -1,989 +0,0 @@
-/*
- * pluma-spinner.c
- * This file is part of pluma
- *
- * Copyright (C) 2005 - Paolo Maggi
- * Copyright (C) 2002-2004 Marco Pesenti Gritti
- * Copyright (C) 2004 Christian Persch
- * Copyright (C) 2000 - Eazel, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * This widget was originally written by Andy Hertzfeld <[email protected]> for
- * Caja. It was then modified by Marco Pesenti Gritti and Christian Persch
- * for Epiphany.
- *
- * Modified by the pluma Team, 2005. See the AUTHORS file for a
- * list of people on the pluma Team.
- * See the ChangeLog files for a list of changes.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "pluma-spinner.h"
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gtk/gtk.h>
-
-/* Spinner cache implementation */
-
-#define PLUMA_TYPE_SPINNER_CACHE (pluma_spinner_cache_get_type())
-#define PLUMA_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), PLUMA_TYPE_SPINNER_CACHE, PlumaSpinnerCache))
-#define PLUMA_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PLUMA_TYPE_SPINNER_CACHE, PlumaSpinnerCacheClass))
-#define PLUMA_IS_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), PLUMA_TYPE_SPINNER_CACHE))
-#define PLUMA_IS_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PLUMA_TYPE_SPINNER_CACHE))
-#define PLUMA_SPINNER_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PLUMA_TYPE_SPINNER_CACHE, PlumaSpinnerCacheClass))
-
-typedef struct _PlumaSpinnerCache PlumaSpinnerCache;
-typedef struct _PlumaSpinnerCacheClass PlumaSpinnerCacheClass;
-typedef struct _PlumaSpinnerCachePrivate PlumaSpinnerCachePrivate;
-
-struct _PlumaSpinnerCacheClass
-{
- GObjectClass parent_class;
-};
-
-struct _PlumaSpinnerCache
-{
- GObject parent_object;
-
- /*< private >*/
- PlumaSpinnerCachePrivate *priv;
-};
-
-#define PLUMA_SPINNER_CACHE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), PLUMA_TYPE_SPINNER_CACHE, PlumaSpinnerCachePrivate))
-
-struct _PlumaSpinnerCachePrivate
-{
- /* Hash table of GdkScreen -> PlumaSpinnerCacheData */
- GHashTable *hash;
-};
-
-typedef struct
-{
- guint ref_count;
- GtkIconSize size;
- gint width;
- gint height;
- GdkPixbuf **animation_pixbufs;
- guint n_animation_pixbufs;
-} PlumaSpinnerImages;
-
-#define LAST_ICON_SIZE GTK_ICON_SIZE_DIALOG + 1
-#define SPINNER_ICON_NAME "process-working"
-#define SPINNER_FALLBACK_ICON_NAME "mate-spinner"
-#define PLUMA_SPINNER_IMAGES_INVALID ((PlumaSpinnerImages *) 0x1)
-
-typedef struct
-{
- GdkScreen *screen;
- GtkIconTheme *icon_theme;
- PlumaSpinnerImages *images[LAST_ICON_SIZE];
-} PlumaSpinnerCacheData;
-
-static void pluma_spinner_cache_class_init (PlumaSpinnerCacheClass *klass);
-static void pluma_spinner_cache_init (PlumaSpinnerCache *cache);
-
-static GObjectClass *pluma_spinner_cache_parent_class;
-
-static GType
-pluma_spinner_cache_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0))
- {
- const GTypeInfo our_info =
- {
- sizeof (PlumaSpinnerCacheClass),
- NULL,
- NULL,
- (GClassInitFunc) pluma_spinner_cache_class_init,
- NULL,
- NULL,
- sizeof (PlumaSpinnerCache),
- 0,
- (GInstanceInitFunc) pluma_spinner_cache_init
- };
-
- type = g_type_register_static (G_TYPE_OBJECT,
- "PlumaSpinnerCache",
- &our_info, 0);
- }
-
- return type;
-}
-
-static PlumaSpinnerImages *
-pluma_spinner_images_ref (PlumaSpinnerImages *images)
-{
- g_return_val_if_fail (images != NULL, NULL);
-
- images->ref_count++;
-
- return images;
-}
-
-static void
-pluma_spinner_images_unref (PlumaSpinnerImages *images)
-{
- g_return_if_fail (images != NULL);
-
- images->ref_count--;
- if (images->ref_count == 0)
- {
- guint i;
-
- /* LOG ("Freeing spinner images %p for size %d", images, images->size); */
-
- for (i = 0; i < images->n_animation_pixbufs; ++i)
- {
- g_object_unref (images->animation_pixbufs[i]);
- }
- g_free (images->animation_pixbufs);
-
- g_free (images);
- }
-}
-
-static void
-pluma_spinner_cache_data_unload (PlumaSpinnerCacheData *data)
-{
- GtkIconSize size;
- PlumaSpinnerImages *images;
-
- g_return_if_fail (data != NULL);
-
- /* LOG ("PlumaSpinnerDataCache unload for screen %p", data->screen); */
-
- for (size = GTK_ICON_SIZE_INVALID; size < LAST_ICON_SIZE; ++size)
- {
- images = data->images[size];
- data->images[size] = NULL;
-
- if (images != NULL && images != PLUMA_SPINNER_IMAGES_INVALID)
- {
- pluma_spinner_images_unref (images);
- }
- }
-}
-
-static GdkPixbuf *
-extract_frame (GdkPixbuf *grid_pixbuf,
- int x,
- int y,
- int size)
-{
- GdkPixbuf *pixbuf;
-
- if (x + size > gdk_pixbuf_get_width (grid_pixbuf) ||
- y + size > gdk_pixbuf_get_height (grid_pixbuf))
- {
- return NULL;
- }
-
- pixbuf = gdk_pixbuf_new_subpixbuf (grid_pixbuf,
- x, y,
- size, size);
- g_return_val_if_fail (pixbuf != NULL, NULL);
-
- return pixbuf;
-}
-
-static GdkPixbuf *
-scale_to_size (GdkPixbuf *pixbuf,
- int dw,
- int dh)
-{
- GdkPixbuf *result;
- int pw, ph;
-
- g_return_val_if_fail (pixbuf != NULL, NULL);
-
- pw = gdk_pixbuf_get_width (pixbuf);
- ph = gdk_pixbuf_get_height (pixbuf);
-
- if (pw != dw || ph != dh)
- {
- result = gdk_pixbuf_scale_simple (pixbuf, dw, dh,
- GDK_INTERP_BILINEAR);
- g_object_unref (pixbuf);
- return result;
- }
-
- return pixbuf;
-}
-
-static PlumaSpinnerImages *
-pluma_spinner_images_load (GdkScreen *screen,
- GtkIconTheme *icon_theme,
- GtkIconSize icon_size)
-{
- PlumaSpinnerImages *images;
- GdkPixbuf *icon_pixbuf, *pixbuf;
- GtkIconInfo *icon_info = NULL;
- int grid_width, grid_height, x, y, requested_size, size, isw, ish, n;
- const char *icon;
- GSList *list = NULL, *l;
-
- /* LOG ("PlumaSpinnerCacheData loading for screen %p at size %d", screen, icon_size); */
-
- /* START_PROFILER ("loading spinner animation") */
-
- if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
- icon_size, &isw, &ish))
- goto loser;
-
- requested_size = MAX (ish, isw);
-
- /* Load the animation. The 'rest icon' is the 0th frame */
- icon_info = gtk_icon_theme_lookup_icon (icon_theme,
- SPINNER_ICON_NAME,
- requested_size, 0);
- if (icon_info == NULL)
- {
- g_warning ("Throbber animation not found");
-
- /* If the icon naming spec compliant name wasn't found, try the old name */
- icon_info = gtk_icon_theme_lookup_icon (icon_theme,
- SPINNER_FALLBACK_ICON_NAME,
- requested_size, 0);
- if (icon_info == NULL)
- {
- g_warning ("Throbber fallback animation not found either");
- goto loser;
- }
- }
-
- g_assert (icon_info != NULL);
-
- size = gtk_icon_info_get_base_size (icon_info);
- icon = gtk_icon_info_get_filename (icon_info);
-
- if (icon == NULL)
- goto loser;
-
- icon_pixbuf = gdk_pixbuf_new_from_file (icon, NULL);
- gtk_icon_info_free (icon_info);
- icon_info = NULL;
-
- if (icon_pixbuf == NULL)
- {
- g_warning ("Could not load the spinner file");
- goto loser;
- }
-
- grid_width = gdk_pixbuf_get_width (icon_pixbuf);
- grid_height = gdk_pixbuf_get_height (icon_pixbuf);
-
- n = 0;
- for (y = 0; y < grid_height; y += size)
- {
- for (x = 0; x < grid_width ; x += size)
- {
- pixbuf = extract_frame (icon_pixbuf, x, y, size);
-
- if (pixbuf)
- {
- list = g_slist_prepend (list, pixbuf);
- ++n;
- }
- else
- {
- g_warning ("Cannot extract frame (%d, %d) from the grid\n", x, y);
- }
- }
- }
-
- g_object_unref (icon_pixbuf);
-
- if (list == NULL)
- goto loser;
-
- /* g_assert (n > 0); */
-
- if (size > requested_size)
- {
- for (l = list; l != NULL; l = l->next)
- {
- l->data = scale_to_size (l->data, isw, ish);
- }
- }
-
- /* Now we've successfully got all the data */
- images = g_new (PlumaSpinnerImages, 1);
- images->ref_count = 1;
-
- images->size = icon_size;
- images->width = images->height = requested_size;
-
- images->n_animation_pixbufs = n;
- images->animation_pixbufs = g_new (GdkPixbuf *, n);
-
- for (l = list; l != NULL; l = l->next)
- {
- g_assert (l->data != NULL);
- images->animation_pixbufs[--n] = l->data;
- }
- g_assert (n == 0);
-
- g_slist_free (list);
-
- /* STOP_PROFILER ("loading spinner animation") */
- return images;
-
-loser:
- if (icon_info)
- {
- gtk_icon_info_free (icon_info);
- }
-
- g_slist_foreach (list, (GFunc) g_object_unref, NULL);
-
- /* STOP_PROFILER ("loading spinner animation") */
-
- return NULL;
-}
-
-static PlumaSpinnerCacheData *
-pluma_spinner_cache_data_new (GdkScreen *screen)
-{
- PlumaSpinnerCacheData *data;
-
- data = g_new0 (PlumaSpinnerCacheData, 1);
-
- data->screen = screen;
- data->icon_theme = gtk_icon_theme_get_for_screen (screen);
- g_signal_connect_swapped (data->icon_theme,
- "changed",
- G_CALLBACK (pluma_spinner_cache_data_unload),
- data);
-
- return data;
-}
-
-static void
-pluma_spinner_cache_data_free (PlumaSpinnerCacheData *data)
-{
- g_return_if_fail (data != NULL);
- g_return_if_fail (data->icon_theme != NULL);
-
- g_signal_handlers_disconnect_by_func (data->icon_theme,
- G_CALLBACK (pluma_spinner_cache_data_unload),
- data);
-
- pluma_spinner_cache_data_unload (data);
-
- g_free (data);
-}
-
-static PlumaSpinnerImages *
-pluma_spinner_cache_get_images (PlumaSpinnerCache *cache,
- GdkScreen *screen,
- GtkIconSize icon_size)
-{
- PlumaSpinnerCachePrivate *priv = cache->priv;
- PlumaSpinnerCacheData *data;
- PlumaSpinnerImages *images;
-
- /* LOG ("Getting animation images for screen %p at size %d", screen, icon_size); */
-
- g_return_val_if_fail (icon_size >= 0 && icon_size < LAST_ICON_SIZE, NULL);
-
- /* Backward compat: "invalid" meant "native" size which doesn't exist anymore */
- if (icon_size == GTK_ICON_SIZE_INVALID)
- {
- icon_size = GTK_ICON_SIZE_DIALOG;
- }
-
- data = g_hash_table_lookup (priv->hash, screen);
- if (data == NULL)
- {
- data = pluma_spinner_cache_data_new (screen);
- /* FIXME: think about what happens when the screen's display is closed later on */
- g_hash_table_insert (priv->hash, screen, data);
- }
-
- images = data->images[icon_size];
- if (images == PLUMA_SPINNER_IMAGES_INVALID)
- {
- /* Load failed, but don't try endlessly again! */
- return NULL;
- }
-
- if (images != NULL)
- {
- /* Return cached data */
- return pluma_spinner_images_ref (images);
- }
-
- images = pluma_spinner_images_load (screen, data->icon_theme, icon_size);
-
- if (images == NULL)
- {
- /* Mark as failed-to-load */
- data->images[icon_size] = PLUMA_SPINNER_IMAGES_INVALID;
-
- return NULL;
- }
-
- data->images[icon_size] = images;
-
- return pluma_spinner_images_ref (images);
-}
-
-static void
-pluma_spinner_cache_init (PlumaSpinnerCache *cache)
-{
- PlumaSpinnerCachePrivate *priv;
-
- priv = cache->priv = PLUMA_SPINNER_CACHE_GET_PRIVATE (cache);
-
- /* LOG ("PlumaSpinnerCache initialising"); */
-
- priv->hash = g_hash_table_new_full (g_direct_hash,
- g_direct_equal,
- NULL,
- (GDestroyNotify) pluma_spinner_cache_data_free);
-}
-
-static void
-pluma_spinner_cache_finalize (GObject *object)
-{
- PlumaSpinnerCache *cache = PLUMA_SPINNER_CACHE (object);
- PlumaSpinnerCachePrivate *priv = cache->priv;
-
- g_hash_table_destroy (priv->hash);
-
- /* LOG ("PlumaSpinnerCache finalised"); */
-
- G_OBJECT_CLASS (pluma_spinner_cache_parent_class)->finalize (object);
-}
-
-static void
-pluma_spinner_cache_class_init (PlumaSpinnerCacheClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- pluma_spinner_cache_parent_class = g_type_class_peek_parent (klass);
-
- object_class->finalize = pluma_spinner_cache_finalize;
-
- g_type_class_add_private (object_class, sizeof (PlumaSpinnerCachePrivate));
-}
-
-static PlumaSpinnerCache *spinner_cache = NULL;
-
-static PlumaSpinnerCache *
-pluma_spinner_cache_ref (void)
-{
- if (spinner_cache == NULL)
- {
- PlumaSpinnerCache **cache_ptr;
-
- spinner_cache = g_object_new (PLUMA_TYPE_SPINNER_CACHE, NULL);
- cache_ptr = &spinner_cache;
- g_object_add_weak_pointer (G_OBJECT (spinner_cache),
- (gpointer *) cache_ptr);
-
- return spinner_cache;
- }
-
- return g_object_ref (spinner_cache);
-}
-
-/* Spinner implementation */
-
-#define SPINNER_TIMEOUT 125 /* ms */
-
-#define PLUMA_SPINNER_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), PLUMA_TYPE_SPINNER, PlumaSpinnerPrivate))
-
-struct _PlumaSpinnerPrivate
-{
- GtkIconTheme *icon_theme;
- PlumaSpinnerCache *cache;
- GtkIconSize size;
- PlumaSpinnerImages *images;
- guint current_image;
- guint timeout;
- guint timer_task;
- guint spinning : 1;
- guint need_load : 1;
-};
-
-static void pluma_spinner_class_init (PlumaSpinnerClass *class);
-static void pluma_spinner_init (PlumaSpinner *spinner);
-
-static GObjectClass *parent_class;
-
-GType
-pluma_spinner_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0))
- {
- const GTypeInfo our_info =
- {
- sizeof (PlumaSpinnerClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) pluma_spinner_class_init,
- NULL,
- NULL, /* class_data */
- sizeof (PlumaSpinner),
- 0, /* n_preallocs */
- (GInstanceInitFunc) pluma_spinner_init
- };
-
- type = g_type_register_static (GTK_TYPE_WIDGET,
- "PlumaSpinner",
- &our_info, 0);
- }
-
- return type;
-}
-
-static gboolean
-pluma_spinner_load_images (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- if (priv->need_load)
- {
- /* START_PROFILER ("pluma_spinner_load_images") */
-
- priv->images =
- pluma_spinner_cache_get_images (priv->cache,
- gtk_widget_get_screen (GTK_WIDGET (spinner)),
- priv->size);
-
- /* STOP_PROFILER ("pluma_spinner_load_images") */
-
- priv->current_image = 0; /* 'rest' icon */
- priv->need_load = FALSE;
- }
-
- return priv->images != NULL;
-}
-
-static void
-pluma_spinner_unload_images (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- if (priv->images != NULL)
- {
- pluma_spinner_images_unref (priv->images);
- priv->images = NULL;
- }
-
- priv->current_image = 0;
- priv->need_load = TRUE;
-}
-
-static void
-icon_theme_changed_cb (GtkIconTheme *icon_theme,
- PlumaSpinner *spinner)
-{
- pluma_spinner_unload_images (spinner);
- gtk_widget_queue_resize (GTK_WIDGET (spinner));
-}
-
-static void
-pluma_spinner_init (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv;
-
- priv = spinner->priv = PLUMA_SPINNER_GET_PRIVATE (spinner);
-
- gtk_widget_set_has_window (GTK_WIDGET (spinner), FALSE);
-
- priv->cache = pluma_spinner_cache_ref ();
- priv->size = GTK_ICON_SIZE_DIALOG;
- priv->spinning = FALSE;
- priv->timeout = SPINNER_TIMEOUT;
- priv->need_load = TRUE;
-}
-
-static int
-pluma_spinner_expose (GtkWidget *widget,
- GdkEventExpose *event)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (widget);
- PlumaSpinnerPrivate *priv = spinner->priv;
- PlumaSpinnerImages *images;
- GdkPixbuf *pixbuf;
- GdkGC *gc;
- int x_offset, y_offset, width, height;
- GdkRectangle pix_area, dest;
-
- if (!GTK_WIDGET_DRAWABLE (spinner))
- {
- return FALSE;
- }
-
- if (priv->need_load &&
- !pluma_spinner_load_images (spinner))
- {
- return FALSE;
- }
-
- images = priv->images;
- if (images == NULL)
- {
- return FALSE;
- }
-
- /* Otherwise |images| will be NULL anyway */
- g_assert (images->n_animation_pixbufs > 0);
-
- g_assert (priv->current_image >= 0 &&
- priv->current_image < images->n_animation_pixbufs);
-
- pixbuf = images->animation_pixbufs[priv->current_image];
-
- g_assert (pixbuf != NULL);
-
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
-
- /* Compute the offsets for the image centered on our allocation */
- x_offset = (widget->allocation.width - width) / 2;
- y_offset = (widget->allocation.height - height) / 2;
-
- pix_area.x = x_offset + widget->allocation.x;
- pix_area.y = y_offset + widget->allocation.y;
- pix_area.width = width;
- pix_area.height = height;
-
- if (!gdk_rectangle_intersect (&event->area, &pix_area, &dest))
- {
- return FALSE;
- }
-
- gc = gdk_gc_new (widget->window);
- gdk_draw_pixbuf (widget->window, gc, pixbuf,
- dest.x - x_offset - widget->allocation.x,
- dest.y - y_offset - widget->allocation.y,
- dest.x, dest.y,
- dest.width, dest.height,
- GDK_RGB_DITHER_MAX, 0, 0);
- g_object_unref (gc);
-
- return FALSE;
-}
-
-static gboolean
-bump_spinner_frame_cb (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- /* This can happen when we've unloaded the images on a theme
- * change, but haven't been in the queued size request yet.
- * Just skip this update.
- */
- if (priv->images == NULL)
- return TRUE;
-
- priv->current_image++;
- if (priv->current_image >= priv->images->n_animation_pixbufs)
- {
- /* the 0th frame is the 'rest' icon */
- priv->current_image = MIN (1, priv->images->n_animation_pixbufs);
- }
-
- gtk_widget_queue_draw (GTK_WIDGET (spinner));
-
- /* run again */
- return TRUE;
-}
-
-/**
- * pluma_spinner_start:
- * @spinner: a #PlumaSpinner
- *
- * Start the spinner animation.
- **/
-void
-pluma_spinner_start (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- priv->spinning = TRUE;
-
- if (GTK_WIDGET_MAPPED (GTK_WIDGET (spinner)) &&
- priv->timer_task == 0 &&
- pluma_spinner_load_images (spinner))
- {
- /* the 0th frame is the 'rest' icon */
- priv->current_image = MIN (1, priv->images->n_animation_pixbufs);
-
- priv->timer_task = g_timeout_add_full (G_PRIORITY_LOW,
- priv->timeout,
- (GSourceFunc) bump_spinner_frame_cb,
- spinner,
- NULL);
- }
-}
-
-static void
-pluma_spinner_remove_update_callback (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- if (priv->timer_task != 0)
- {
- g_source_remove (priv->timer_task);
- priv->timer_task = 0;
- }
-}
-
-/**
- * pluma_spinner_stop:
- * @spinner: a #PlumaSpinner
- *
- * Stop the spinner animation.
- **/
-void
-pluma_spinner_stop (PlumaSpinner *spinner)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- priv->spinning = FALSE;
- priv->current_image = 0;
-
- if (priv->timer_task != 0)
- {
- pluma_spinner_remove_update_callback (spinner);
-
- if (GTK_WIDGET_MAPPED (GTK_WIDGET (spinner)))
- gtk_widget_queue_draw (GTK_WIDGET (spinner));
- }
-}
-
-/*
- * pluma_spinner_set_size:
- * @spinner: a #PlumaSpinner
- * @size: the size of type %GtkIconSize
- *
- * Set the size of the spinner.
- **/
-void
-pluma_spinner_set_size (PlumaSpinner *spinner,
- GtkIconSize size)
-{
- if (size == GTK_ICON_SIZE_INVALID)
- {
- size = GTK_ICON_SIZE_DIALOG;
- }
-
- if (size != spinner->priv->size)
- {
- pluma_spinner_unload_images (spinner);
-
- spinner->priv->size = size;
-
- gtk_widget_queue_resize (GTK_WIDGET (spinner));
- }
-}
-
-#if 0
-/*
-* pluma_spinner_set_timeout:
-* @spinner: a #PlumaSpinner
-* @timeout: time delay between updates to the spinner.
-*
-* Sets the timeout delay for spinner updates.
-**/
-void
-pluma_spinner_set_timeout (PlumaSpinner *spinner,
- guint timeout)
-{
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- if (timeout != priv->timeout)
- {
- pluma_spinner_stop (spinner);
-
- priv->timeout = timeout;
-
- if (priv->spinning)
- {
- pluma_spinner_start (spinner);
- }
- }
-}
-#endif
-
-static void
-pluma_spinner_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (widget);
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- if ((priv->need_load &&
- !pluma_spinner_load_images (spinner)) ||
- priv->images == NULL)
- {
- requisition->width = requisition->height = 0;
- gtk_icon_size_lookup_for_settings (gtk_widget_get_settings (widget),
- priv->size,
- &requisition->width,
- &requisition->height);
- return;
- }
-
- requisition->width = priv->images->width;
- requisition->height = priv->images->height;
-
- /* FIXME fix this hack */
- /* allocate some extra margin so we don't butt up against toolbar edges */
- if (priv->size != GTK_ICON_SIZE_MENU)
- {
- requisition->width += 2;
- requisition->height += 2;
- }
-}
-
-static void
-pluma_spinner_map (GtkWidget *widget)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (widget);
- PlumaSpinnerPrivate *priv = spinner->priv;
-
- GTK_WIDGET_CLASS (parent_class)->map (widget);
-
- if (priv->spinning)
- {
- pluma_spinner_start (spinner);
- }
-}
-
-static void
-pluma_spinner_unmap (GtkWidget *widget)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (widget);
-
- pluma_spinner_remove_update_callback (spinner);
-
- GTK_WIDGET_CLASS (parent_class)->unmap (widget);
-}
-
-static void
-pluma_spinner_dispose (GObject *object)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (object);
-
- g_signal_handlers_disconnect_by_func
- (spinner->priv->icon_theme,
- G_CALLBACK (icon_theme_changed_cb), spinner);
-
- G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-static void
-pluma_spinner_finalize (GObject *object)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (object);
-
- pluma_spinner_remove_update_callback (spinner);
- pluma_spinner_unload_images (spinner);
-
- g_object_unref (spinner->priv->cache);
-
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static void
-pluma_spinner_screen_changed (GtkWidget *widget,
- GdkScreen *old_screen)
-{
- PlumaSpinner *spinner = PLUMA_SPINNER (widget);
- PlumaSpinnerPrivate *priv = spinner->priv;
- GdkScreen *screen;
-
- if (GTK_WIDGET_CLASS (parent_class)->screen_changed)
- {
- GTK_WIDGET_CLASS (parent_class)->screen_changed (widget, old_screen);
- }
-
- screen = gtk_widget_get_screen (widget);
-
- /* FIXME: this seems to be happening when then spinner is destroyed!? */
- if (old_screen == screen)
- return;
-
- /* We'll get mapped again on the new screen, but not unmapped from
- * the old screen, so remove timeout here.
- */
- pluma_spinner_remove_update_callback (spinner);
-
- pluma_spinner_unload_images (spinner);
-
- if (old_screen != NULL)
- {
- g_signal_handlers_disconnect_by_func
- (gtk_icon_theme_get_for_screen (old_screen),
- G_CALLBACK (icon_theme_changed_cb), spinner);
- }
-
- priv->icon_theme = gtk_icon_theme_get_for_screen (screen);
- g_signal_connect (priv->icon_theme, "changed",
- G_CALLBACK (icon_theme_changed_cb), spinner);
-}
-
-static void
-pluma_spinner_class_init (PlumaSpinnerClass *class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-
- parent_class = g_type_class_peek_parent (class);
-
- object_class->dispose = pluma_spinner_dispose;
- object_class->finalize = pluma_spinner_finalize;
-
- widget_class->expose_event = pluma_spinner_expose;
- widget_class->size_request = pluma_spinner_size_request;
- widget_class->map = pluma_spinner_map;
- widget_class->unmap = pluma_spinner_unmap;
- widget_class->screen_changed = pluma_spinner_screen_changed;
-
- g_type_class_add_private (object_class, sizeof (PlumaSpinnerPrivate));
-}
-
-/*
- * pluma_spinner_new:
- *
- * Create a new #PlumaSpinner. The spinner is a widget
- * that gives the user feedback about network status with
- * an animated image.
- *
- * Return Value: the spinner #GtkWidget
- **/
-GtkWidget *
-pluma_spinner_new (void)
-{
- return GTK_WIDGET (g_object_new (PLUMA_TYPE_SPINNER, NULL));
-}
diff --git a/pluma/pluma-spinner.h b/pluma/pluma-spinner.h
deleted file mode 100644
index 1bdad868..00000000
--- a/pluma/pluma-spinner.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * pluma-spinner.h
- * This file is part of pluma
- *
- * Copyright (C) 2005 - Paolo Maggi
- * Copyright (C) 2000 - Eazel, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * This widget was originally written by Andy Hertzfeld <[email protected]> for
- * Caja.
- *
- * Modified by the pluma Team, 2005. See the AUTHORS file for a
- * list of people on the pluma Team.
- * See the ChangeLog files for a list of changes.
- *
- * $Id$
- */
-
-#ifndef __PLUMA_SPINNER_H__
-#define __PLUMA_SPINNER_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-/*
- * Type checking and casting macros
- */
-#define PLUMA_TYPE_SPINNER (pluma_spinner_get_type ())
-#define PLUMA_SPINNER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PLUMA_TYPE_SPINNER, PlumaSpinner))
-#define PLUMA_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PLUMA_TYPE_SPINNER, PlumaSpinnerClass))
-#define PLUMA_IS_SPINNER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PLUMA_TYPE_SPINNER))
-#define PLUMA_IS_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PLUMA_TYPE_SPINNER))
-#define PLUMA_SPINNER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PLUMA_TYPE_SPINNER, PlumaSpinnerClass))
-
-
-/* Private structure type */
-typedef struct _PlumaSpinnerPrivate PlumaSpinnerPrivate;
-
-/*
- * Main object structure
- */
-typedef struct _PlumaSpinner PlumaSpinner;
-
-struct _PlumaSpinner
-{
- GtkWidget parent;
-
- /*< private >*/
- PlumaSpinnerPrivate *priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _PlumaSpinnerClass PlumaSpinnerClass;
-
-struct _PlumaSpinnerClass
-{
- GtkWidgetClass parent_class;
-};
-
-/*
- * Public methods
- */
-GType pluma_spinner_get_type (void) G_GNUC_CONST;
-
-GtkWidget *pluma_spinner_new (void);
-
-void pluma_spinner_start (PlumaSpinner *throbber);
-
-void pluma_spinner_stop (PlumaSpinner *throbber);
-
-void pluma_spinner_set_size (PlumaSpinner *spinner,
- GtkIconSize size);
-
-G_END_DECLS
-
-#endif /* __PLUMA_SPINNER_H__ */
diff --git a/pluma/pluma-tab-label.c b/pluma/pluma-tab-label.c
index 449b49f3..c429f11c 100644
--- a/pluma/pluma-tab-label.c
+++ b/pluma/pluma-tab-label.c
@@ -29,10 +29,6 @@
#include "pluma-tab-label.h"
#include "pluma-close-button.h"
-#ifdef BUILD_SPINNER
-#include "pluma-spinner.h"
-#endif
-
#define PLUMA_TAB_LABEL_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), PLUMA_TYPE_TAB_LABEL, PlumaTabLabelPrivate))
/* Signals */
@@ -169,11 +165,7 @@ sync_state (PlumaTab *tab, GParamSpec *pspec, PlumaTabLabel *tab_label)
gtk_widget_hide (tab_label->priv->icon);
gtk_widget_show (tab_label->priv->spinner);
-#ifdef BUILD_SPINNER
- pluma_spinner_start (PLUMA_SPINNER (tab_label->priv->spinner));
-#else
gtk_spinner_start (GTK_SPINNER (tab_label->priv->spinner));
-#endif
}
else
{
@@ -188,11 +180,7 @@ sync_state (PlumaTab *tab, GParamSpec *pspec, PlumaTabLabel *tab_label)
gtk_widget_show (tab_label->priv->icon);
gtk_widget_hide (tab_label->priv->spinner);
-#ifdef BUILD_SPINNER
- pluma_spinner_stop (PLUMA_SPINNER (tab_label->priv->spinner));
-#else
gtk_spinner_stop (GTK_SPINNER (tab_label->priv->spinner));
-#endif
}
/* sync tip since encoding is known only after load/save end */
@@ -291,12 +279,7 @@ pluma_tab_label_init (PlumaTabLabel *tab_label)
G_CALLBACK (close_button_clicked_cb),
tab_label);
-#ifdef BUILD_SPINNER
- spinner = pluma_spinner_new ();
- pluma_spinner_set_size (PLUMA_SPINNER (spinner), GTK_ICON_SIZE_MENU);
-#else
spinner = gtk_spinner_new ();
-#endif
gtk_box_pack_start (GTK_BOX (hbox), spinner, FALSE, FALSE, 0);
tab_label->priv->spinner = spinner;
diff --git a/pluma/pluma-tab.c b/pluma/pluma-tab.c
index 46d9681b..b02c10fb 100644
--- a/pluma/pluma-tab.c
+++ b/pluma/pluma-tab.c
@@ -45,10 +45,6 @@
#include "pluma-prefs-manager-app.h"
#include "pluma-enum-types.h"
-#if !GTK_CHECK_VERSION (2, 17, 1)
-#include "pluma-message-area.h"
-#endif
-
#define PLUMA_TAB_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), PLUMA_TYPE_TAB, PlumaTabPrivate))
#define PLUMA_TAB_KEY "PLUMA_TAB_KEY"
@@ -947,13 +943,8 @@ document_loaded (PlumaDocument *document,
set_message_area (tab, emsg);
}
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_default_response (PLUMA_MESSAGE_AREA (emsg),
- GTK_RESPONSE_CANCEL);
-#else
gtk_info_bar_set_default_response (GTK_INFO_BAR (emsg),
GTK_RESPONSE_CANCEL);
-#endif
gtk_widget_show (emsg);
@@ -995,13 +986,8 @@ document_loaded (PlumaDocument *document,
G_CALLBACK (io_loading_error_message_area_response),
tab);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_default_response (PLUMA_MESSAGE_AREA (emsg),
- GTK_RESPONSE_CANCEL);
-#else
gtk_info_bar_set_default_response (GTK_INFO_BAR (emsg),
GTK_RESPONSE_CANCEL);
-#endif
gtk_widget_show (emsg);
}
@@ -1035,13 +1021,8 @@ document_loaded (PlumaDocument *document,
set_message_area (tab, w);
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_default_response (PLUMA_MESSAGE_AREA (w),
- GTK_RESPONSE_CANCEL);
-#else
gtk_info_bar_set_default_response (GTK_INFO_BAR (w),
GTK_RESPONSE_CANCEL);
-#endif
gtk_widget_show (w);
@@ -1352,13 +1333,8 @@ document_saved (PlumaDocument *document,
tab);
}
-#if !GTK_CHECK_VERSION (2, 17, 1)
- pluma_message_area_set_default_response (PLUMA_MESSAGE_AREA (emsg),
- GTK_RESPONSE_CANCEL);
-#else
gtk_info_bar_set_default_response (GTK_INFO_BAR (emsg),
GTK_RESPONSE_CANCEL);
-#endif
gtk_widget_show (emsg);
}
@@ -2518,52 +2494,6 @@ show_printing_message_area (PlumaTab *tab, gboolean preview)
set_message_area (tab, area);
}
-#if !GTK_CHECK_VERSION (2, 17, 4)
-
-static void
-page_setup_done_cb (GtkPageSetup *setup,
- PlumaTab *tab)
-{
- if (setup != NULL)
- {
- PlumaDocument *doc;
-
- doc = pluma_tab_get_document (tab);
-
- /* remember it for this document */
- g_object_set_data_full (G_OBJECT (doc),
- PLUMA_PAGE_SETUP_KEY,
- g_object_ref (setup),
- (GDestroyNotify)g_object_unref);
-
- /* make it the default */
- _pluma_app_set_default_page_setup (pluma_app_get_default(),
- setup);
- }
-}
-
-void
-_pluma_tab_page_setup (PlumaTab *tab)
-{
- GtkPageSetup *setup;
- GtkPrintSettings *settings;
-
- g_return_if_fail (PLUMA_IS_TAB (tab));
-
- setup = get_page_setup (tab);
- settings = get_print_settings (tab);
-
- gtk_print_run_page_setup_dialog_async (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tab))),
- setup,
- settings,
- (GtkPageSetupDoneFunc) page_setup_done_cb,
- tab);
-
- /* CHECK: should we unref setup and settings? */
-}
-
-#endif
-
static void
pluma_tab_print_or_print_preview (PlumaTab *tab,
GtkPrintOperationAction print_action)
diff --git a/pluma/pluma-tab.h b/pluma/pluma-tab.h
index 89b8e59f..209db62f 100644
--- a/pluma/pluma-tab.h
+++ b/pluma/pluma-tab.h
@@ -156,10 +156,6 @@ void _pluma_tab_mark_for_closing (PlumaTab *tab);
gboolean _pluma_tab_can_close (PlumaTab *tab);
-#if !GTK_CHECK_VERSION (2, 17, 4)
-void _pluma_tab_page_setup (PlumaTab *tab);
-#endif
-
G_END_DECLS
#endif /* __PLUMA_TAB_H__ */
diff --git a/pluma/pluma-ui.h b/pluma/pluma-ui.h
index 68d239e5..50b3740f 100644
--- a/pluma/pluma-ui.h
+++ b/pluma/pluma-ui.h
@@ -83,10 +83,6 @@ static const GtkActionEntry pluma_menu_entries[] =
N_("Save the current file with a different name"), G_CALLBACK (_pluma_cmd_file_save_as) },
{ "FileRevert", GTK_STOCK_REVERT_TO_SAVED, NULL, NULL,
N_("Revert to a saved version of the file"), G_CALLBACK (_pluma_cmd_file_revert) },
-#if !GTK_CHECK_VERSION (2, 17, 4)
- { "FilePageSetup", GTK_STOCK_PAGE_SETUP, N_("Page Set_up..."), NULL,
- N_("Set up the page settings"), G_CALLBACK (_pluma_cmd_file_page_setup) },
-#endif
{ "FilePrintPreview", GTK_STOCK_PRINT_PREVIEW, N_("Print Previe_w"),"<control><shift>P",
N_("Print preview"), G_CALLBACK (_pluma_cmd_file_print_preview) },
{ "FilePrint", GTK_STOCK_PRINT, N_("_Print..."), "<control>P",
diff --git a/pluma/pluma-view.c b/pluma/pluma-view.c
index dd5a1dd7..fd689e45 100644
--- a/pluma/pluma-view.c
+++ b/pluma/pluma-view.c
@@ -916,13 +916,6 @@ send_focus_change (GtkWidget *widget,
g_object_ref (widget);
-#if !GTK_CHECK_VERSION (2, 21, 0)
- if (in)
- GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
- else
- GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
-#endif
-
fevent->focus_change.type = GDK_FOCUS_CHANGE;
#if GTK_CHECK_VERSION (3, 0, 0)
fevent->focus_change.window = g_object_ref (gtk_widget_get_window (widget));
diff --git a/pluma/pluma-window.c b/pluma/pluma-window.c
index 95483aa8..1d47d28f 100644
--- a/pluma/pluma-window.c
+++ b/pluma/pluma-window.c
@@ -1574,30 +1574,6 @@ create_menu_bar_and_toolbar (PlumaWindow *window,
}
g_free (ui_file);
-#if !GTK_CHECK_VERSION (2, 17, 4)
- /* merge page setup menu manually since we cannot have conditional
- * sections in pluma-ui.xml */
- {
- guint merge_id;
- PlumaLockdownMask lockdown;
-
- merge_id = gtk_ui_manager_new_merge_id (manager);
- gtk_ui_manager_add_ui (manager,
- merge_id,
- "/MenuBar/FileMenu/FileOps_5",
- "FilePageSetupMenu",
- "FilePageSetup",
- GTK_UI_MANAGER_MENUITEM,
- FALSE);
-
- lockdown = pluma_app_get_lockdown (pluma_app_get_default ());
- action = gtk_action_group_get_action (window->priv->action_group,
- "FilePageSetup");
- gtk_action_set_sensitive (action,
- !(lockdown & PLUMA_LOCKDOWN_PRINT_SETUP));
- }
-#endif
-
/* show tooltips in the statusbar */
g_signal_connect (manager,
"connect_proxy",
@@ -2661,12 +2637,6 @@ _pluma_window_set_lockdown (PlumaWindow *window,
!(window->priv->state & PLUMA_WINDOW_STATE_PRINTING) &&
!(lockdown & PLUMA_LOCKDOWN_SAVE_TO_DISK));
-#if !GTK_CHECK_VERSION (2, 17, 4)
- action = gtk_action_group_get_action (window->priv->action_group,
- "FilePageSetup");
- gtk_action_set_sensitive (action,
- !(lockdown & PLUMA_LOCKDOWN_PRINT_SETUP));
-#endif
}
static void
diff --git a/pluma/smclient/eggdesktopfile.c b/pluma/smclient/eggdesktopfile.c
index fbd4f30e..384fd475 100755
--- a/pluma/smclient/eggdesktopfile.c
+++ b/pluma/smclient/eggdesktopfile.c
@@ -909,7 +909,6 @@ parse_link (EggDesktopFile *desktop_file,
return TRUE;
}
-#if GTK_CHECK_VERSION (2, 12, 0)
static char *
start_startup_notification (GdkDisplay *display,
EggDesktopFile *desktop_file,
@@ -1020,7 +1019,6 @@ set_startup_notification_timeout (GdkDisplay *display,
g_timeout_add_seconds (EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH,
startup_notification_timeout, sn_data);
}
-#endif /* GTK 2.12 */
static GPtrArray *
array_putenv (GPtrArray *env, char *variable)
@@ -1207,7 +1205,6 @@ egg_desktop_file_launchv (EggDesktopFile *desktop_file,
}
g_free (command);
-#if GTK_CHECK_VERSION (2, 12, 0)
startup_id = start_startup_notification (display, desktop_file,
argv[0], screen_num,
workspace, launch_time);
@@ -1218,9 +1215,6 @@ egg_desktop_file_launchv (EggDesktopFile *desktop_file,
env = array_putenv (env, startup_id_env);
g_free (startup_id_env);
}
-#else
- startup_id = NULL;
-#endif /* GTK 2.12 */
if (env != NULL)
g_ptr_array_add (env, NULL);
@@ -1238,7 +1232,6 @@ egg_desktop_file_launchv (EggDesktopFile *desktop_file,
if (startup_id)
{
-#if GTK_CHECK_VERSION (2, 12, 0)
if (current_success)
{
set_startup_notification_timeout (display, startup_id);
@@ -1249,7 +1242,6 @@ egg_desktop_file_launchv (EggDesktopFile *desktop_file,
g_free (startup_id);
}
else
-#endif /* GTK 2.12 */
g_free (startup_id);
}
else if (ret_startup_id)