1 /*
2  * Copyright © 2009-2018 Siyan Panayotov <contact@siyanpanayotov.com>
3  *
4  * This file is part of Viewnior.
5  *
6  * Viewnior is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Viewnior is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Viewnior.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __VNR_PROPERTIES_DIALOG_H__
21 #define __VNR_PROPERTIES_DIALOG_H__
22 
23 #include <glib.h>
24 #include <glib-object.h>
25 #include <gtk/gtk.h>
26 #include <gio/gio.h>
27 #include <gdk/gdkkeysyms.h>
28 #include "uni-image-view.h"
29 #include "vnr-window.h"
30 
31 G_BEGIN_DECLS
32 
33 typedef struct _VnrPropertiesDialog VnrPropertiesDialog;
34 typedef struct _VnrPropertiesDialogClass VnrPropertiesDialogClass;
35 
36 
37 #define VNR_TYPE_PROPERTIES_DIALOG             (vnr_properties_dialog_get_type ())
38 #define VNR_PROPERTIES_DIALOG(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialog))
39 #define VNR_PROPERTIES_DIALOG_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass),  VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialogClass))
40 #define VNR_IS_PROPERTIES_DIALOG(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VNR_TYPE_PROPERTIES_DIALOG))
41 #define VNR_IS_PROPERTIES_DIALOG_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass),  VNR_TYPE_PROPERTIES_DIALOG))
42 #define VNR_PROPERTIES_DIALOG_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj),  VNR_TYPE_PROPERTIES_DIALOG, VnrPropertiesDialogClass))
43 
44 struct _VnrPropertiesDialog {
45     GtkDialog parent;
46 
47     GtkWidget* layout;
48     GtkWidget* image_layout;
49     GtkWidget* image;
50     GtkWidget* meta_names_box;
51     GtkWidget* meta_values_box;
52 
53     GtkWidget* close_button;
54     GtkWidget* next_button;
55     GtkWidget* prev_button;
56 
57     GtkWidget* name_label;
58     GtkWidget* size_label;
59     GtkWidget* width_label;
60     GtkWidget* height_label;
61     GtkWidget* type_label;
62     GtkWidget* location_label;
63 
64     GdkPixbuf *thumbnail;
65 
66     VnrWindow *vnr_win;
67 };
68 
69 struct _VnrPropertiesDialogClass {
70     GtkDialogClass parent_class;
71 };
72 
73 GType       vnr_properties_dialog_get_type (void) G_GNUC_CONST;
74 
75 GtkWidget*  vnr_properties_dialog_new      (VnrWindow *vnr_win, GtkAction *next_action, GtkAction *prev_action);
76 
77 void    vnr_properties_dialog_update        (VnrPropertiesDialog *dialog);
78 void    vnr_properties_dialog_update_image  (VnrPropertiesDialog *dialog);
79 void    vnr_properties_dialog_clear         (VnrPropertiesDialog *dialog);
80 void    vnr_properties_dialog_show          (VnrPropertiesDialog *dialog);
81 
82 
83 G_END_DECLS
84 #endif /* __VNR_PROPERTIES_DIALOG_H__ */
85