1 /*   EXTRAITS DE LA LICENCE
2 	Copyright CEA, contributeurs : Luc BILLARD et Damien
3 	CALISTE, laboratoire L_Sim, (2001-2006)
4 
5 	Adresse mèl :
6 	BILLARD, non joignable par mèl ;
7 	CALISTE, damien P caliste AT cea P fr.
8 
9 	Ce logiciel est un programme informatique servant à visualiser des
10 	structures atomiques dans un rendu pseudo-3D.
11 
12 	Ce logiciel est régi par la licence CeCILL soumise au droit français et
13 	respectant les principes de diffusion des logiciels libres. Vous pouvez
14 	utiliser, modifier et/ou redistribuer ce programme sous les conditions
15 	de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
16 	sur le site "http://www.cecill.info".
17 
18 	Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
19 	pris connaissance de la licence CeCILL, et que vous en avez accepté les
20 	termes (cf. le fichier Documentation/licence.fr.txt fourni avec ce logiciel).
21 */
22 
23 /*   LICENCE SUM UP
24 	Copyright CEA, contributors : Luc BILLARD et Damien
25 	CALISTE, laboratoire L_Sim, (2001-2006)
26 
27 	E-mail address:
28 	BILLARD, not reachable any more ;
29 	CALISTE, damien P caliste AT cea P fr.
30 
31 	This software is a computer program whose purpose is to visualize atomic
32 	configurations in 3D.
33 
34 	This software is governed by the CeCILL  license under French law and
35 	abiding by the rules of distribution of free software.  You can  use,
36 	modify and/ or redistribute the software under the terms of the CeCILL
37 	license as circulated by CEA, CNRS and INRIA at the following URL
38 	"http://www.cecill.info".
39 
40 	The fact that you are presently reading this means that you have had
41 	knowledge of the CeCILL license and that you accept its terms. You can
42 	find a copy of this licence shipped with this software at Documentation/licence.en.txt.
43 */
44 #ifndef GTK_RENDERINGWINDOW_H
45 #define GTK_RENDERINGWINDOW_H
46 
47 #include <glib.h>
48 #include <glib-object.h>
49 #include <gtk/gtk.h>
50 
51 #include "visu_dataloadable.h"
52 #include "visu_dump.h"
53 #include "visu_glnodescene.h"
54 #include "openGLFunctions/interactive.h"
55 
56 G_BEGIN_DECLS
57 /**
58  * VISU_TYPE_UI_RENDERING_WINDOW:
59  *
60  * Return the associated #GType to the Renderingwindow objects.
61  */
62 #define VISU_TYPE_UI_RENDERING_WINDOW         (visu_ui_rendering_window_get_type())
63 /**
64  * VISU_UI_RENDERING_WINDOW:
65  * @obj: the widget to cast.
66  *
67  * Cast the given object to a #VisuUiRenderingWindow object.
68  */
69 #define VISU_UI_RENDERING_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_CAST((obj), VISU_TYPE_UI_RENDERING_WINDOW, VisuUiRenderingWindow))
70 /**
71  * VISU_UI_RENDERING_WINDOW_CLASS:
72  * @klass: the class to cast.
73  *
74  * Cast the given class to a #VisuUiRenderingWindowClass object.
75  */
76 #define VISU_UI_RENDERING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), VISU_TYPE_UI_RENDERING_WINDOW, VisuUiRenderingWindowClass))
77 /**
78  * VISU_IS_UI_RENDERING_WINDOW:
79  * @obj: the object to test.
80  *
81  * Return if the given object is a valid #VisuUiRenderingWindow object.
82  */
83 #define VISU_IS_UI_RENDERING_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), VISU_TYPE_UI_RENDERING_WINDOW))
84 /**
85  * VISU_IS_UI_RENDERING_WINDOW_CLASS:
86  * @klass: the class to test.
87  *
88  * Return if the given class is a valid #VisuUiRenderingWindowClass class.
89  */
90 #define VISU_IS_UI_RENDERING_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), VISU_TYPE_UI_RENDERING_WINDOW))
91 /**
92  * VISU_UI_RENDERING_WINDOW_GET_CLASS:
93  * @obj: a #GObject to get the class of.
94  *
95  * It returns the class of the given @obj.
96  */
97 #define VISU_UI_RENDERING_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS(obj, VISU_TYPE_UI_RENDERING_WINDOW, VisuUiRenderingWindowClass))
98 
99 /**
100  * VisuUiRenderingWindow:
101  *
102  * Short form for a #VisuUiRenderingWindow_struct structure.
103  */
104 typedef struct _VisuUiRenderingWindow VisuUiRenderingWindow;
105 /**
106  * VisuUiRenderingWindowClass:
107  *
108  * Opaque structure.
109  */
110 typedef struct _VisuUiRenderingWindowClass VisuUiRenderingWindowClass;
111 
112 /**
113  * visu_ui_rendering_window_get_type
114  *
115  * #GType are unique numbers to identify objects.
116  *
117  * Returns: the #GType associated with #VisuUiRenderingWindow objects.
118  */
119 GType          visu_ui_rendering_window_get_type        (void);
120 
121 GtkWidget* visu_ui_rendering_window_new(int width, int height,
122                                         gboolean withFrame, gboolean withToolBar);
123 GtkWidget* visu_ui_rendering_window_new_withGlScene(VisuGlNodeScene *scene,
124                                                     gboolean withToolBar);
125 void visu_ui_rendering_window_pushMessage(VisuUiRenderingWindow *window,
126                                           const gchar *message);
127 void visu_ui_rendering_window_popMessage(VisuUiRenderingWindow *window);
128 
129 VisuGlNodeScene* visu_ui_rendering_window_getGlScene(VisuUiRenderingWindow *window);
130 
131 void visu_ui_rendering_window_loadFile(VisuUiRenderingWindow *window, VisuDataLoadable *data, guint iSet);
132 void visu_ui_rendering_window_open(VisuUiRenderingWindow *window, GtkWindow *parent);
133 
134 void visu_ui_rendering_window_reload(VisuUiRenderingWindow *window);
135 GtkAccelGroup* visu_ui_rendering_window_getAccelGroup(VisuUiRenderingWindow *window);
136 
137 void visu_ui_rendering_window_setCurrent(VisuUiRenderingWindow *window, gboolean force);
138 
139 void visu_ui_rendering_window_pushInteractive(VisuUiRenderingWindow *window,
140 				     VisuInteractive *inter);
141 void visu_ui_rendering_window_popInteractive(VisuUiRenderingWindow *window,
142 				    VisuInteractive *inter);
143 
144 gboolean visu_ui_rendering_window_setDisplayCoordinatesInReduce(VisuUiRenderingWindow *window, gboolean status);
145 gboolean visu_ui_rendering_window_getDisplayCoordinatesInReduce(const VisuUiRenderingWindow *window);
146 void visu_ui_rendering_window_class_finalize(void);
147 
148 G_END_DECLS
149 
150 #endif
151