Include a Other Software section in Help file
[geeqie.git] / src / main.h
index 5717f81..61cc21d 100644 (file)
@@ -1,15 +1,24 @@
 /*
- * Geeqie
- * (C) 2006 John Ellis
+ * Copyright (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
  * Author: John Ellis
  *
- * 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 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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-
 #ifndef MAIN_H
 #define MAIN_H
 
@@ -25,6 +34,7 @@
 
 #include "intl.h"
 
+
 /*
  *-------------------------------------
  * Standard library includes
@@ -55,6 +65,7 @@
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk-pixbuf/gdk-pixbuf-loader.h>
 
+#include "compat.h"
 
 /*
  *----------------------------------------------------------------------------
  *----------------------------------------------------------------------------
  */
 
-#define GQ_WMCLASS "geeqie"
+#define USE_XDG 1
+
+#define GQ_APPNAME "Geeqie"
+#define GQ_APPNAME_LC "geeqie"
+#define GQ_WEBSITE "http://www.geeqie.org/"
+#define GQ_EMAIL_ADDRESS "geeqie@freelists.org"
 
-#define GQVIEW_RC_DIR             ".geeqie"
-#define GQVIEW_RC_DIR_COLLECTIONS GQVIEW_RC_DIR"/collections"
-#define GQVIEW_RC_DIR_TRASH       GQVIEW_RC_DIR"/trash"
+#define GQ_RC_DIR              "." GQ_APPNAME_LC
+#define GQ_COLLECTIONS_DIR     "collections"
+#define GQ_TRASH_DIR           "trash"
+#define GQ_WINDOW_LAYOUTS_DIR  "layouts"
 
-#define RC_FILE_NAME "geeqierc"
+#define GQ_SYSTEM_WIDE_DIR    "/etc/" GQ_APPNAME_LC
 
-#define ZOOM_RESET_ORIGINAL 0
-#define ZOOM_RESET_FIT_WINDOW 1
-#define ZOOM_RESET_NONE 2
+#define RC_FILE_NAME GQ_APPNAME_LC "rc.xml"
+
+#define GQ_COLLECTION_EXT ".gqv"
 
 #define SCROLL_RESET_TOPLEFT 0
 #define SCROLL_RESET_CENTER 1
 
 #define MOUSEWHEEL_SCROLL_SIZE 20
 
-#define GQVIEW_EDITOR_GENERIC_SLOTS 10
+
+#define GQ_DEFAULT_SHELL_PATH "/bin/sh"
+#define GQ_DEFAULT_SHELL_OPTIONS "-c"
 
 #define COLOR_PROFILE_INPUTS 4
 
 #define DEFAULT_THUMB_WIDTH    96
 #define DEFAULT_THUMB_HEIGHT   72
 
-#if 1 /* set to 0 to disable debugging code and related options */
-# ifndef DEBUG
-# define DEBUG 1
-# endif
-#endif
-#ifndef DEBUG
-# define debug 0
-#endif
+#define DEFAULT_MINIMAL_WINDOW_SIZE 100
 
-#include "typedefs.h"
+#define IMAGE_MIN_WIDTH 100
+#define SIDEBAR_DEFAULT_WIDTH 250
 
-/*
- *----------------------------------------------------------------------------
- * globals
- *----------------------------------------------------------------------------
- */
 
-/*
- * Since globals are used everywhere,
- * it is easier to define them here.
- */
+#define DEFAULT_OVERLAY_INFO   "%collection:<i>*</i>\\n%" \
+                               "(%number%/%total%) [%zoom%] <b>%name%</b>\n" \
+                               "%res%|%date%|%size%\n" \
+                               "%formatted.Aperture%|%formatted.ShutterSpeed%|%formatted.ISOSpeedRating:ISO *%|%formatted.FocalLength%|%formatted.ExposureBias:* Ev%\n" \
+                               "%formatted.Camera:40%|%formatted.Flash%\n"            \
+                               "%formatted.star_rating%"
 
-extern GList *filename_filter;
-
-/* -- options -- */
-extern gint main_window_w;
-extern gint main_window_h;
-extern gint main_window_x;
-extern gint main_window_y;
-extern gint main_window_maximized;
-
-extern gint float_window_w;
-extern gint float_window_h;
-extern gint float_window_x;
-extern gint float_window_y;
-extern gint float_window_divider;
-
-extern gint window_hdivider_pos;
-extern gint window_vdivider_pos;
-
-extern gint save_window_positions;
-extern gint tools_float;
-extern gint tools_hidden;
-extern gint toolbar_hidden;
-extern gint progressive_key_scrolling;
-
-extern gint startup_path_enable;
-extern gchar *startup_path;
-extern gint confirm_delete;
-extern gint enable_delete_key;
-extern gint safe_delete_enable;
-extern gchar *safe_delete_path;
-extern gint safe_delete_size;
-extern gint restore_tool;
-extern gint zoom_mode;
-extern gint two_pass_zoom;
-extern gint scroll_reset_method;
-extern gint fit_window;
-extern gint limit_window_size;
-extern gint zoom_to_fit_expands;
-extern gint max_window_size;
-extern gint limit_autofit_size;
-extern gint max_autofit_size;
-extern gint thumb_max_width;
-extern gint thumb_max_height;
-extern gint enable_thumb_caching;
-extern gint enable_thumb_dirs;
-extern gint thumbnail_fast;
-extern gint use_xvpics_thumbnails;
-extern gint thumbnail_spec_standard;
-extern gint enable_metadata_dirs;
-extern gint show_dot_files;
-extern gint file_filter_disable;
-extern gchar *editor_name[];
-extern gchar *editor_command[];
-
-extern gint thumbnails_enabled;
-extern SortType file_sort_method;
-extern gint file_sort_ascending;
-
-extern gint slideshow_delay;   /* in tenths of a second */
-extern gint slideshow_random;
-extern gint slideshow_repeat;
-
-extern gint mousewheel_scrolls;
-extern gint enable_in_place_rename;
-
-extern gint user_specified_window_background;
-extern GdkColor window_background_color;
-
-extern gint fullscreen_screen;
-extern gint fullscreen_clean_flip;
-extern gint fullscreen_disable_saver;
-extern gint fullscreen_above;
-extern gint show_fullscreen_info;
-extern gchar *fullscreen_info;
-
-extern gint dupe_custom_threshold;
-
-#ifdef DEBUG
-extern gint debug;
-#endif
-
-extern gint recent_list_max;
-
-extern gint collection_rectangular_selection;
-
-extern gint tile_cache_max;    /* in megabytes */
-extern gint thumbnail_quality;
-extern gint zoom_quality;
-extern gint dither_quality;
-
-extern gint zoom_increment;    /* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
-
-extern gint enable_read_ahead;
-
-extern gint place_dialogs_under_mouse;
-
-/* layout */
-extern gchar *layout_order;
-extern gint layout_style;
-
-extern gint layout_view_icons;
-extern gint layout_view_tree;
-
-extern gint show_icon_names;
+#define GQ_LINK_STR "↗"
+#include "typedefs.h"
+#include "debug.h"
+#include "options.h"
 
-extern gint tree_descend_subdirs;
+#define TIMEZONE_DATABASE GQ_WEBSITE"downloads/timezone21.bin"
 
-extern gint lazy_image_sync;
-extern gint update_on_time_change;
-extern gint exif_rotate_enable;
+#define HELP_SEARCH_ENGINE "https://duckduckgo.com/?q=site:geeqie.org/help "
 
-extern gint color_profile_enabled;
-extern gint color_profile_input_type;
-extern gchar *color_profile_input_file[];
-extern gchar *color_profile_input_name[];
-extern gint color_profile_screen_type;
-extern gchar *color_profile_screen_file;
-extern gint color_profile_use_image;
+#define STAR_RATING_NOT_READ -12345
+#define STAR_RATING_REJECTED 0x274C //Unicode Character 'Cross Mark'
+#define STAR_RATING_STAR 0x2738 //Unicode Character 'Heavy Eight Pointed Rectilinear Black Star'
 
 /*
  *----------------------------------------------------------------------------
@@ -238,19 +142,23 @@ extern gint color_profile_use_image;
  * This also doubles as the main.c header.
  */
 
-void window_set_icon(GtkWidget *window, const gchar *icon, const gchar *file);
-gint window_maximized(GtkWidget *window);
+extern gboolean thumb_format_changed;
 
-gdouble get_zoom_increment(void);
-
-void help_window_show(const gchar *key);
+extern gchar *gq_prefix;
+extern gchar *gq_localedir;
+extern gchar *gq_helpdir;
+extern gchar *gq_htmldir;
+extern gchar *gq_app_dir;
+extern gchar *gq_bin_dir;
+extern gchar *desktop_file_template;
 
 void keyboard_scroll_calc(gint *x, gint *y, GdkEventKey *event);
 gint key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data);
-void exit_program(void);
 
+void exit_program(void);
 
-#endif
-
+#define CASE_SORT(a, b) ( (options->file_sort.case_sensitive) ? strcmp((a), (b)) : strcasecmp((a), (b)) )
 
 
+#endif
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */