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