1 // -*- C++ -*-
2 
3 /*
4  * Gnome Crystal
5  * cleavagesdlg.h
6  *
7  * Copyright (C) 2002-2011 Jean Bréfort <jean.brefort@normalesup.org>
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 3 of the
12  * License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
22  * USA
23  */
24 
25 #ifndef GCR_CLEAVAGESDLG_H
26 #define GCR_CLEAVAGESDLG_H
27 
28 #include <gcugtk/dialog.h>
29 #include "grid.h"
30 #include <vector>
31 
32 /*!\file*/
33 namespace gcu {
34 class Application;
35 }
36 
37 namespace gcr {
38 
39 class Document;
40 class Application;
41 class Cleavage;
42 
43 /*!\class CleavagesDlg gcr/cleavagesdlg.h
44 \brief GCrystal cleavages dialog class.
45 
46 This class wraps the dialog used to define cleavages inside a crystal model.
47 */
48 class CleavagesDlg: public gcugtk::Dialog
49 {
50 friend class CleavagesDlgPrivate;
51 public:
52 /*!
53 @param App the application running the dialog.
54 @param pDoc the document.
55 
56 Creates the dialog.
57 */
58 	CleavagesDlg (gcr::Application *App, gcr::Document* pDoc);
59 /*!
60 The destructor.
61 */
62 	virtual ~CleavagesDlg ();
63 
64 /*!
65 Reloads the cleavages list from the document. The list might have changed after
66 simplification following duplicates detection.
67 */
68 	void ReloadData ();
69 
70 private:
71 	void Closed ();
72 
73 private:
74 	Document *m_pDoc;
75 	std::vector < Cleavage * > m_Cleavages;
76 	GtkWidget *DeleteBtn, *DeleteAllBtn;
77 	GtkWidget *m_Grid;
78 	int m_CurRow;
79 	bool m_Closing;
80 };
81 
82 }	//	namespace gcr
83 
84 #endif //GCR_CLEAVAGESDLG_H
85