1 /* -*- Mode: C; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 3 -*- */ 2 3 /* 4 * GImageView 5 * Copyright (C) 2001 Takuro Ashie 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 * 21 * $Id: gimv_image_win.h,v 1.7 2004/03/07 11:53:31 makeinu Exp $ 22 */ 23 24 #ifndef __GIMV_IMAGE_WIN_H__ 25 #define __GIMV_IMAGE_WIN_H__ 26 27 #include "gimageview.h" 28 #include "gimv_image_view.h" 29 30 31 #define GIMV_TYPE_IMAGE_WIN (gimv_image_win_get_type ()) 32 #define GIMV_IMAGE_WIN(obj) (GTK_CHECK_CAST (obj, gimv_image_win_get_type (), GimvImageWin)) 33 #define GIMV_IMAGE_WIN_CLASS(klass) (GTK_CHECK_CLASS_CAST (klass, gimv_image_win_get_type, GimvImageWinClass)) 34 #define GIMV_IS_IMAGE_WIN(obj) (GTK_CHECK_TYPE (obj, gimv_image_win_get_type ())) 35 #define GIMV_IS_IMAGE_WIN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GIMV_TYPE_IMAGE_WIN)) 36 37 38 typedef struct GimvImageWinClass_Tag GimvImageWinClass; 39 typedef struct GimvImageWinPriv_Tag GimvImageWinPriv; 40 41 42 typedef enum { 43 GimvImageWinCreatingFlag = 1 << 0, 44 GimvImageWinShowMenuBarFlag = 1 << 1, 45 GimvImageWinShowToolBarFlag = 1 << 2, 46 GimvImageWinShowPlayerFlag = 1 << 3, 47 GimvImageWinShowStatusBarFlag = 1 << 4, 48 GimvImageWinHideFrameFlag = 1 << 5, 49 GimvImageWinSeekBarDraggingFlag = 1 << 6, 50 GimvImageWinMovieFlag = 1 << 7, 51 GimvImageWinMaximizeFlag = 1 << 8, 52 GimvImageWinFullScreenFlag = 1 << 9, 53 GimvImageWinSlideShowRepeatFlag = 1 << 10, 54 GimvImageWinSlideShowPlayingFlag = 1 << 11, 55 GimvImageWinSlideShowSeekBarDraggingFlag = 1 << 12, 56 GimvImageWinNotSaveStateFlag = 1 << 13 57 } GimvImageWinFlags; 58 59 60 struct GimvImageWin_Tag 61 { 62 GtkWindow parent; 63 64 /* Image View */ 65 GimvImageView *iv; 66 67 /* other widgets */ 68 GtkWidget *menubar_handle; 69 GtkWidget *menubar; 70 GtkWidget *toolbar_handle; 71 GtkWidget *toolbar; 72 GtkWidget *player_handle; 73 GtkWidget *player_bar; 74 75 struct /* buttons in toolbar */ 76 { 77 GtkWidget *fileopen; 78 GtkWidget *prefs; 79 GtkWidget *prev; 80 GtkWidget *next; 81 GtkWidget *xscale; 82 GtkWidget *yscale; 83 GtkWidget *rotate; 84 } button; 85 86 struct /* buttons in player */ 87 { 88 GtkWidget *prev; 89 GtkWidget *rw; 90 GtkWidget *play; 91 GtkWidget *stop; 92 GtkWidget *fw; 93 GtkWidget *next; 94 GtkWidget *seekbar; 95 } player; 96 97 GtkWidget *main_vbox; /* Image Container */ 98 99 GtkWidget *status_bar_container; 100 GtkWidget *status_bar1; 101 GtkWidget *status_bar2; 102 GtkWidget *progressbar; 103 104 /* sub menus */ 105 GtkWidget *view_menu; 106 GtkWidget *move_menu; 107 GtkWidget *help_menu; 108 109 /* fullscreen window */ 110 GtkWidget *fullscreen; 111 112 GimvImageWinPriv *priv; 113 }; 114 115 116 struct GimvImageWinClass_Tag 117 { 118 GtkWindowClass parent_class; 119 120 /* signals */ 121 void (*show_fullscreen) (GimvImageWin *iw); 122 void (*hide_fullscreen) (GimvImageWin *iw); 123 }; 124 125 126 GtkType gimv_image_win_get_type (void); 127 GtkWidget *gimv_image_win_new (GimvImageInfo *info); 128 GimvImageWin *gimv_image_win_open_window (GimvImageInfo *info); 129 GimvImageWin *gimv_image_win_open_shared_window (GimvImageInfo *info); 130 GimvImageWin *gimv_image_win_open_window_auto (GimvImageInfo *info); 131 132 GList *gimv_image_win_get_list (void); 133 GimvImageWin *gimv_image_win_get_shared_window (void); 134 135 void gimv_image_win_player_set_sensitive_all (GimvImageWin *iw, 136 gboolean sensitive); 137 void gimv_image_win_change_image (GimvImageWin *iw, 138 GimvImageInfo *info); 139 140 void gimv_image_win_set_sensitive (GimvImageWin *iw, 141 gboolean sensitive); 142 void gimv_image_win_save_state (GimvImageWin *iw); 143 144 void gimv_image_win_slideshow_play (GimvImageWin *iw); 145 void gimv_image_win_slideshow_stop (GimvImageWin *iw); 146 void gimv_image_win_slideshow_set_interval (GimvImageWin *iw, 147 guint interval); 148 void gimv_image_win_slideshow_set_repeat (GimvImageWin *iw, 149 gboolean repeat); 150 151 void gimv_image_win_show_menubar (GimvImageWin *iw, 152 gboolean show); 153 void gimv_image_win_show_toolbar (GimvImageWin *iw, 154 gboolean show); 155 void gimv_image_win_show_player (GimvImageWin *iw, 156 gboolean show); 157 void gimv_image_win_show_statusbar (GimvImageWin *iw, 158 gboolean show); 159 void gimv_image_win_set_maximize (GimvImageWin *iw, 160 gboolean show); 161 void gimv_image_win_set_fullscreen (GimvImageWin *iw, 162 gboolean show); 163 void gimv_image_win_set_fullscreen_bg_color (GimvImageWin *iw, 164 gint red, 165 gint green, 166 gint blue); 167 void gimv_image_win_set_flags (GimvImageWin *iw, 168 GimvImageWinFlags flags); 169 void gimv_image_win_unset_flags (GimvImageWin *iw, 170 GimvImageWinFlags flags); 171 172 #endif /* __GIMV_IMAGE_WIN_H__ */ 173