]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/ModalDialog.hh
removed doxygen; distcheck bugfix
[chaz/yoink] / src / Moof / ModalDialog.hh
index 9b3820a210867f51b7cc626c07daef938efdfaef..4ca199e0778f897d15c2c783816636f8e7852756 100644 (file)
@@ -1,30 +1,13 @@
 
-/*******************************************************************************
-
- Copyright (c) 2009, Charles McGarvey
- All rights reserved.
- Redistribution   and   use  in  source  and  binary  forms,  with  or  without
- modification, are permitted provided that the following conditions are met:
-   * Redistributions  of  source  code  must retain the above copyright notice,
-     this list of conditions and the following disclaimer.
-   * Redistributions  in binary form must reproduce the above copyright notice,
-     this  list of conditions and the following disclaimer in the documentation
-     and/or other materials provided with the distribution.
- THIS  SOFTWARE  IS  PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND  ANY  EXPRESS  OR  IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED.  IN  NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR  ANY  DIRECT,  INDIRECT,  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES  (INCLUDING,  BUT  NOT  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES;  LOSS  OF  USE,  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*******************************************************************************/
+/*]  Copyright (c) 2009-2010, Charles McGarvey  [**************************
+**]  All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* Distributable under the terms and conditions of the 2-clause BSD license;
+* see the file COPYING for a complete text of the license.
+*
+**************************************************************************/
 
 #ifndef _MOOF_MODALDIALOG_HH_
 #define _MOOF_MODALDIALOG_HH_
 #include <string>
 
 #if HAVE_CONFIG_H
-#include "../config.h"
+#include "config.h"
 #endif
 
-#if defined(_WIN32) || defined(__WIN32__)
+#if defined(_WIN32)
 #include <windows.h>
 #elif defined(__APPLE__) && defined(__MACH__)
 #include <Carbon/Carbon.h>
@@ -74,6 +57,17 @@ struct ModalDialog
        std::string text2;
 
 
+
+       ModalDialog(Type pType = INFO,
+                               const std::string& pTitle = "",
+                               const std::string& pText1 = "",
+                               const std::string& pText2 = "") :
+               title(pTitle),
+               type(pType),
+               text1(pText1),
+               text2(pText2) {}
+
+
        void run() const
        {
                switch (type)
@@ -92,7 +86,26 @@ struct ModalDialog
                                break;
                }
 
-#if USE_GTK
+#if defined(_WIN32)
+
+               int iconType;
+               switch (type)
+               {
+                       case WARNING:
+                               iconType = MB_ICONWARNING;
+                               break;
+                       case CRITICAL:
+                               iconType = MB_ICONERROR;
+                               break;
+                       default:
+                               iconType = MB_ICONINFORMATION;
+                               break;
+               }
+
+               MessageBox(0, (text1 + "\n" + text2).c_str(), title.c_str(),
+                               MB_OK | iconType);
+
+#elif USE_GTK
 
                int argc = 0;
                char** argv;
@@ -116,17 +129,21 @@ struct ModalDialog
                                GTK_DIALOG_DESTROY_WITH_PARENT, iconType,
                                GTK_BUTTONS_CLOSE, "%s", text1.c_str());
                gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
-                               "%s", text2.c_str());
+                                                                                                "%s", text2.c_str());
                gtk_window_set_title(GTK_WINDOW(dialog), title.c_str());
 
-               std::string iconPath = Resource::getPath(PACKAGE".png");
-               GdkPixbuf* iconPixbuf = gdk_pixbuf_new_from_file(iconPath.c_str(), NULL);
-               gtk_window_set_icon(GTK_WINDOW(dialog), iconPixbuf);
+               std::string iconPath(PACKAGE".png");
+               if (Resource::getPath(iconPath))
+               {
+                       GdkPixbuf* iconPixbuf = gdk_pixbuf_new_from_file(iconPath.c_str(),
+                                                                                                                        NULL);
+                       gtk_window_set_icon(GTK_WINDOW(dialog), iconPixbuf);
+               }
 
                gtk_dialog_run(GTK_DIALOG(dialog));
                gtk_widget_destroy(dialog);
                // FIXME - this doesn't seem to actually remove the window from the
-               // screen when it closes, not sure why...
+               // screen when it closes
 
 #elif USE_QT4
 
@@ -155,9 +172,12 @@ struct ModalDialog
                dialog.setInformativeText(text2.c_str());
                dialog.setStandardButtons(QMessageBox::Close);
 
-               std::string iconPath = Resource::getPath(PACKAGE".png");
-               QIcon icon(iconPath.c_str());
-               dialog.setWindowIcon(icon);
+               std::string iconPath(PACKAGE".png");
+               if (Resource::getPath(iconPath))
+               {
+                       QIcon icon(iconPath.c_str());
+                       dialog.setWindowIcon(icon);
+               }
 
                dialog.exec();
 
@@ -170,5 +190,3 @@ struct ModalDialog
 
 #endif // _MOOF_MODALDIALOG_HH_
 
-/** vim: set ts=4 sw=4 tw=80: *************************************************/
-
This page took 0.023597 seconds and 4 git commands to generate.