1 // -*- C++ -*- 2 3 /* 4 * Gnome Chemistry Utils 5 * gcugtk/message.h 6 * 7 * Copyright (C) 2010-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 GCU_GTK_MESSAGE_H 26 #define GCU_GTK_MESSAGE_H 27 28 #include <gtk/gtk.h> 29 #include <string> 30 31 /*!\file*/ 32 namespace gcugtk { 33 34 class Application; 35 36 /*!\class Message gcugtk/message.h 37 @brief Message box. 38 39 This class implements a wrapper around GtkMessageDialog. 40 */ 41 class Message { 42 friend class MessagePrivate; 43 public: 44 /*! 45 @param app the Application owning the message box. 46 @param message the text displayed inside the message box. 47 @param type the message box type. 48 @param buttons the buttons to display. 49 @param parent the parent window. 50 @param modal whether the message should be a modal dialog. 51 52 Contructs a new message box. 53 */ 54 Message (Application *app, std::string &message, GtkMessageType type, GtkButtonsType buttons, GtkWindow *parent = NULL, bool modal = false); 55 /*! 56 @param app the Application owning the message box. 57 @param message the text displayed inside the message box. 58 @param type the message box type. 59 @param buttons the buttons to display. 60 @param parent the parent window. 61 @param modal whether the message should be a modal dialog. 62 63 Contructs a new message box. 64 */ 65 Message (Application *app, char const *message, GtkMessageType type, GtkButtonsType buttons, GtkWindow *parent = NULL, bool modal = false); 66 /*! 67 The destructor. 68 */ 69 virtual ~Message (); 70 71 /*! 72 Runs the modal message box. 73 @return the response from the dialog. 74 */ 75 int Run (); 76 /*! 77 Displays a non modal message box. 78 */ 79 void Show (); 80 81 private: 82 unsigned m_delete_sgn, m_destroy_sgn, m_response_sgn; 83 84 /*!\fn GetWindow() 85 @return the embedded GtkDialog instance. 86 */ 87 GCU_RO_PROP (GtkDialog *, Window) 88 }; 89 90 } 91 92 #endif // GCU_GTK_MESSAGE_H 93