1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 3 /* 4 * GThumb 5 * 6 * Copyright (C) 2009 Free Software Foundation, Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef GTH_VIEWER_PAGE_H 23 #define GTH_VIEWER_PAGE_H 24 25 #include <gtk/gtk.h> 26 #include "gth-file-data.h" 27 #include "typedefs.h" 28 29 G_BEGIN_DECLS 30 31 typedef struct _GthBrowser GthBrowser; 32 33 #define GTH_TYPE_VIEWER_PAGE (gth_viewer_page_get_type ()) 34 #define GTH_VIEWER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_VIEWER_PAGE, GthViewerPage)) 35 #define GTH_IS_VIEWER_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_VIEWER_PAGE)) 36 #define GTH_VIEWER_PAGE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTH_TYPE_VIEWER_PAGE, GthViewerPageInterface)) 37 38 typedef struct _GthViewerPage GthViewerPage; 39 typedef struct _GthViewerPageInterface GthViewerPageInterface; 40 41 typedef void (*FileSavedFunc) (GthViewerPage *viewer_page, 42 GthFileData *file_data, 43 GError *error, 44 gpointer user_data); 45 46 struct _GthViewerPageInterface { 47 GTypeInterface parent_iface; 48 49 /*< virtual functions >*/ 50 51 void (*activate) (GthViewerPage *self, 52 GthBrowser *browser); 53 void (*deactivate) (GthViewerPage *self); 54 void (*show) (GthViewerPage *self); 55 void (*hide) (GthViewerPage *self); 56 gboolean (*can_view) (GthViewerPage *self, 57 GthFileData *file_data); 58 void (*view) (GthViewerPage *self, 59 GthFileData *file_data); 60 void (*focus) (GthViewerPage *self); 61 void (*fullscreen) (GthViewerPage *self, 62 gboolean active); 63 void (*show_pointer) (GthViewerPage *self, 64 gboolean show); 65 void (*update_sensitivity) (GthViewerPage *self); 66 gboolean (*can_save) (GthViewerPage *self); 67 void (*save) (GthViewerPage *self, 68 GFile *file, 69 FileSavedFunc func, 70 gpointer data); 71 void (*save_as) (GthViewerPage *self, 72 FileSavedFunc func, 73 gpointer data); 74 void (*revert) (GthViewerPage *self); 75 void (*update_info) (GthViewerPage *self, 76 GthFileData *file_data); 77 void (*show_properties) (GthViewerPage *self, 78 gboolean show); 79 gboolean (*zoom_from_scroll) (GthViewerPage *self, 80 GdkEventScroll *event); 81 82 /*< signals >*/ 83 84 void (*file_loaded) (GthViewerPage *self, 85 GthFileData *file_data, 86 gboolean success); 87 }; 88 89 GType gth_viewer_page_get_type (void); 90 void gth_viewer_page_activate (GthViewerPage *self, 91 GthBrowser *browser); 92 void gth_viewer_page_deactivate (GthViewerPage *self); 93 void gth_viewer_page_show (GthViewerPage *self); 94 void gth_viewer_page_hide (GthViewerPage *self); 95 gboolean gth_viewer_page_can_view (GthViewerPage *self, 96 GthFileData *file_data); 97 void gth_viewer_page_view (GthViewerPage *self, 98 GthFileData *file_data); 99 void gth_viewer_page_focus (GthViewerPage *self); 100 void gth_viewer_page_fullscreen (GthViewerPage *self, 101 gboolean active); 102 void gth_viewer_page_show_pointer (GthViewerPage *self, 103 gboolean show); 104 void gth_viewer_page_update_sensitivity (GthViewerPage *self); 105 gboolean gth_viewer_page_can_save (GthViewerPage *self); 106 void gth_viewer_page_save (GthViewerPage *self, 107 GFile *file, 108 FileSavedFunc func, 109 gpointer data); 110 void gth_viewer_page_save_as (GthViewerPage *self, 111 FileSavedFunc func, 112 gpointer data); 113 void gth_viewer_page_revert (GthViewerPage *self); 114 void gth_viewer_page_update_info (GthViewerPage *self, 115 GthFileData *file_data); 116 void gth_viewer_page_show_properties (GthViewerPage *self, 117 gboolean show); 118 gboolean gth_viewer_page_zoom_from_scroll (GthViewerPage *self, 119 GdkEventScroll *event); 120 void gth_viewer_page_file_loaded (GthViewerPage *self, 121 GthFileData *file_data, 122 GFileInfo *updated_metadata, 123 gboolean success); 124 125 G_END_DECLS 126 127 #endif /* GTH_VIEWER_PAGE_H */ 128