#ifndef FULLSCREEN_H
#define FULLSCREEN_H
-#define FULL_SCREEN_HIDE_MOUSE_DELAY 3000
-#define FULL_SCREEN_BUSY_MOUSE_DELAY 200
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "image-overlay.h"
-FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd,
- void (*stop_func)(FullScreenData *, gpointer), gpointer stop_data);
-void fullscreen_stop(FullScreenData *fs);
+struct ImageWindow;
+struct FullScreenData
+{
+ GtkWidget *window;
+ ImageWindow *imd;
-/* screen numbers for fullscreen_prefs are as follows:
- * 0 use default display size
- * 101 screen 0, monitor 0
- * 102 screen 0, monitor 1
- * 201 screen 1, monitor 0
- */
+ GtkWidget *normal_window;
+ ImageWindow *normal_imd;
+ guint hide_mouse_id; /**< event source id */
+ guint busy_mouse_id; /**< event source id */
-typedef struct _ScreenData ScreenData;
-struct _ScreenData {
- gint number;
- gchar *description;
- gint x;
- gint y;
- gint width;
- gint height;
-};
+ gint cursor_state;
+OsdShowFlags osd_flags;
+ guint saver_block_id; /**< event source id */
-GList *fullscreen_prefs_list(void);
-void fullscreen_prefs_list_free(GList *list);
+ using StopFunc = void (*)(FullScreenData *, gpointer);
+ StopFunc stop_func;
+ gpointer stop_data;
-ScreenData *fullscreen_prefs_list_find(GList *list, gint screen);
+ gboolean same_region; /**< the returned region will overlap the current location of widget. */
+};
-void fullscreen_prefs_get_geometry(gint screen, GtkWidget *widget, gint *x, gint *y, gint *width, gint *height,
- GdkScreen **dest_screen, gboolean *same_region);
+FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd,
+ FullScreenData::StopFunc stop_func, gpointer stop_data);
+void fullscreen_stop(FullScreenData *fs);
-gint fullscreen_prefs_find_screen_for_widget(GtkWidget *widget);
GtkWidget *fullscreen_prefs_selection_new(const gchar *text, gint *screen_value, gboolean *above_value);