Use util_clip_triangle() in pan_item_tri_new()
[geeqie.git] / src / compat.h
index 80d667e..477c1e4 100644 (file)
@@ -1,18 +1,30 @@
 /*
- * Geeqie
- * Copyright (C) 2008 - 2012 The Geeqie Team
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
- * Authors: Vladimir Nadvornik / Laurent Monin
+ * Authors: Vladimir Nadvornik, Laurent Monin
  *
+ * 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 software is released under the GNU General Public License (GNU GPL).
- * Please read the included file COPYING for more information.
- * This software comes with no warranty of any kind, use at your own risk!
+ * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifndef COMPAT_H
 #define COMPAT_H
 
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#include <config.h>
 
 /* Some systems (BSD,MacOsX,HP-UX,...) define MAP_ANON and not MAP_ANONYMOUS */
 #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
 #define        MAP_ANON        MAP_ANONYMOUS
 #endif
 
-#if !GTK_CHECK_VERSION(2,22,0)
-#define GDK_KEY_BackSpace      GDK_BackSpace
-#define GDK_KEY_Delete         GDK_Delete
-#define GDK_KEY_Down           GDK_Down
-#define GDK_KEY_End            GDK_End
-#define GDK_KEY_Escape         GDK_Escape
-#define GDK_KEY_F10            GDK_F10
-#define GDK_KEY_F11            GDK_F11
-#define GDK_KEY_Home           GDK_Home
-#define GDK_KEY_ISO_Left_Tab   GDK_ISO_Left_Tab
-#define GDK_KEY_KP_Add         GDK_KP_Add
-#define GDK_KEY_KP_Delete      GDK_KP_Delete
-#define GDK_KEY_KP_Divide      GDK_KP_Divide
-#define GDK_KEY_KP_Down                GDK_KP_Down
-#define GDK_KEY_KP_End         GDK_KP_End
-#define GDK_KEY_KP_Enter       GDK_KP_Enter
-#define GDK_KEY_KP_Home                GDK_KP_Home
-#define GDK_KEY_KP_Left                GDK_KP_Left
-#define GDK_KEY_KP_Multiply    GDK_KP_Multiply
-#define GDK_KEY_KP_Page_Down   GDK_KP_Page_Down
-#define GDK_KEY_KP_Page_Up     GDK_KP_Page_Up
-#define GDK_KEY_KP_Right       GDK_KP_Right
-#define GDK_KEY_KP_Subtract    GDK_KP_Subtract
-#define GDK_KEY_KP_Up          GDK_KP_Up
-#define GDK_KEY_Left           GDK_Left
-#define GDK_KEY_Menu           GDK_Menu
-#define GDK_KEY_Page_Down      GDK_Page_Down
-#define GDK_KEY_Page_Up                GDK_Page_Up
-#define GDK_KEY_plus           GDK_plus
-#define GDK_KEY_Return         GDK_Return
-#define GDK_KEY_Right          GDK_Right
-#define GDK_KEY_space          GDK_space
-#define GDK_KEY_Tab            GDK_Tab
-#define GDK_KEY_Up             GDK_Up
+#if HAVE_GTK4
+       #define gq_gtk_box_pack_end(box, child, expand, fill, padding) gtk_box_append(box, child)
+       #define gq_gtk_box_pack_start(box, child, expand, fill, padding) gtk_box_prepend(box, child)
+       #define gq_gtk_frame_set_shadow_type(frame, type) ;
+       #define gq_gtk_scrolled_window_new(hadjustment, vadjustment) gtk_scrolled_window_new()
+       #define gq_gtk_scrolled_window_set_shadow_type(scrolled_window, type) gtk_scrolled_window_set_has_frame(scrolled_window, TRUE)
+       #define gq_gtk_widget_destroy(widget) gtk_window_destroy(widget)
+       #define gq_gtk_widget_queue_draw_area(widget, x, y, width, height) gtk_widget_queue_draw(widget);
+       #define gq_gtk_widget_show_all(widget) ;
+       #define gq_gtk_window_move(window, x, y) ;
+       #define gq_gtk_window_set_keep_above(window, setting) ;
+       #define gq_gtk_window_set_position(window, position) ;
+#else
+       #define gq_gtk_box_pack_end(box, child, expand, fill, padding) gtk_box_pack_end(box, child, expand, fill, padding)
+       #define gq_gtk_box_pack_start(box, child, expand, fill, padding) gtk_box_pack_start(box, child, expand, fill, padding)
+       #define gq_gtk_frame_set_shadow_type(frame, type) gtk_frame_set_shadow_type(frame, type)
+       #define gq_gtk_scrolled_window_new(hadjustment, vadjustment) gtk_scrolled_window_new(hadjustment, vadjustment)
+       #define gq_gtk_scrolled_window_set_shadow_type(scrolled_window, type) gtk_scrolled_window_set_shadow_type(scrolled_window, type)
+       #define gq_gtk_widget_destroy(widget) gtk_widget_destroy(widget)
+       #define gq_gtk_widget_queue_draw_area(widget, x, y, width, height) gtk_widget_queue_draw_area(widget, x, y, width, height);
+       #define gq_gtk_widget_show_all(widget) gtk_widget_show_all(widget)
+       #define gq_gtk_window_move(window, x, y) gtk_window_move(window, x, y)
+       #define gq_gtk_window_set_keep_above(window, setting) gtk_window_set_keep_above(window, setting)
+       #define gq_gtk_window_set_position(window, position) gtk_window_set_position(window, position)
 #endif
 
-#if !GTK_CHECK_VERSION(2,24,0)
-#define gtk_combo_box_text_new gtk_combo_box_new_text
-#define gtk_combo_box_text_append_text gtk_combo_box_append_text
-#define gtk_combo_box_text_new_with_entry gtk_combo_box_entry_new_text
-#define gtk_combo_box_new_with_model_and_entry(model) gtk_combo_box_entry_new_with_model(model, FILTER_COLUMN_FILTER)
-#define GTK_COMBO_BOX_TEXT(combo) GTK_COMBO_BOX(combo)
-#define gdk_window_get_width(window) compat_gdk_window_get_width(window)
-#define gdk_window_get_height(window) compat_gdk_window_get_height(window)
+void gq_gtk_container_add(GtkWidget *container, GtkWidget *widget);
 
-gint compat_gdk_window_get_width(GdkWindow *window);
-gint compat_gdk_window_get_height(GdkWindow *window);
-
-#endif
-
-#if !GTK_CHECK_VERSION(2,22,0)
-#define gdk_window_create_similar_surface(window, content, width, height) compat_gdk_window_create_similar_surface(window, content, width, height)
-cairo_surface_t *compat_gdk_window_create_similar_surface (GdkWindow *window, cairo_content_t content, gint width, gint height);
-
-#define gdk_drag_context_get_selected_action(context) ((context)->action)
-#define gdk_drag_context_get_suggested_action(context) ((context)->suggested_action)
-#define gdk_drag_context_get_actions(context) ((context)->actions)
-#endif
+// Hide GtkAction deprecation warnings
+// @todo Remove after porting to GAction/GMenu
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+inline gboolean GQ_GTK_IS_RADIO_ACTION(GtkAction *action) { return GTK_IS_RADIO_ACTION(action); }
+inline gboolean GQ_GTK_IS_TOGGLE_ACTION(GtkAction *action) { return GTK_IS_TOGGLE_ACTION(action); }
+const auto gq_gtk_action_activate = gtk_action_activate;
+const auto gq_gtk_action_create_icon = gtk_action_create_icon;
+const auto gq_gtk_action_get_accel_path = gtk_action_get_accel_path;
+const auto gq_gtk_action_get_icon_name = gtk_action_get_icon_name;
+const auto gq_gtk_action_get_name = gtk_action_get_name;
+const auto gq_gtk_action_get_stock_id = gtk_action_get_stock_id;
+const auto gq_gtk_action_get_tooltip = gtk_action_get_tooltip;
+const auto gq_gtk_action_set_sensitive = gtk_action_set_sensitive;
+const auto gq_gtk_action_set_visible = gtk_action_set_visible;
+const auto gq_gtk_action_group_add_actions = gtk_action_group_add_actions;
+const auto gq_gtk_action_group_add_radio_actions = gtk_action_group_add_radio_actions;
+const auto gq_gtk_action_group_add_toggle_actions = gtk_action_group_add_toggle_actions;
+const auto gq_gtk_action_group_get_action = gtk_action_group_get_action;
+const auto gq_gtk_action_group_list_actions = gtk_action_group_list_actions;
+const auto gq_gtk_action_group_new = gtk_action_group_new;
+const auto gq_gtk_action_group_set_translate_func = gtk_action_group_set_translate_func;
+const auto gq_gtk_radio_action_get_current_value = gtk_radio_action_get_current_value;
+const auto gq_gtk_radio_action_set_current_value = gtk_radio_action_set_current_value;
+const auto gq_gtk_toggle_action_get_active = gtk_toggle_action_get_active;
+const auto gq_gtk_toggle_action_set_active = gtk_toggle_action_set_active;
+const auto gq_gtk_ui_manager_add_ui = gtk_ui_manager_add_ui;
+const auto gq_gtk_ui_manager_add_ui_from_resource = gtk_ui_manager_add_ui_from_resource;
+const auto gq_gtk_ui_manager_add_ui_from_string = gtk_ui_manager_add_ui_from_string;
+const auto gq_gtk_ui_manager_ensure_update = gtk_ui_manager_ensure_update;
+const auto gq_gtk_ui_manager_get_accel_group = gtk_ui_manager_get_accel_group;
+const auto gq_gtk_ui_manager_get_action_groups = gtk_ui_manager_get_action_groups;
+const auto gq_gtk_ui_manager_get_widget = gtk_ui_manager_get_widget;
+const auto gq_gtk_ui_manager_insert_action_group = gtk_ui_manager_insert_action_group;
+const auto gq_gtk_ui_manager_new = gtk_ui_manager_new;
+const auto gq_gtk_ui_manager_new_merge_id = gtk_ui_manager_new_merge_id;
+const auto gq_gtk_ui_manager_remove_action_group = gtk_ui_manager_remove_action_group;
+const auto gq_gtk_ui_manager_remove_ui = gtk_ui_manager_remove_ui;
+const auto gq_gtk_ui_manager_set_add_tearoffs = gtk_ui_manager_set_add_tearoffs;
+G_GNUC_END_IGNORE_DEPRECATIONS
 
 #endif /* COMPAT_H */
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */