From: Vadim Zeitlin Date: Mon, 5 Oct 2009 22:54:36 +0000 (+0000) Subject: Extract conversion from wx to GtkMessageType in a separate file. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ce668f297b03143bc15014a37c12e610c49c6e6b Extract conversion from wx to GtkMessageType in a separate file. Add wxGTKImpl::ConvertMessageTypeFromWX() function to convert from wxICON_XXX styles to GTK_MESSAGE_XXX values. This will be reused by wxInfoBar in the next commits. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/private/messagetype.h b/include/wx/gtk/private/messagetype.h new file mode 100644 index 0000000000..2dfd5d37c1 --- /dev/null +++ b/include/wx/gtk/private/messagetype.h @@ -0,0 +1,45 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/gtk/private/msgtype.h +// Purpose: translate between wx and GtkMessageType +// Author: Vadim Zeitlin +// Created: 2009-09-27 +// RCS-ID: $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $ +// Copyright: (c) 2009 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _GTK_PRIVATE_MSGTYPE_H_ +#define _GTK_PRIVATE_MSGTYPE_H_ + +#include + +namespace wxGTKImpl +{ + +// Convert the given wx style to GtkMessageType, return true if succeeded or +// false if failed. +inline bool ConvertMessageTypeFromWX(int style, GtkMessageType *type) +{ +#ifdef __WXGTK210__ + if ( gtk_check_version(2, 10, 0) == NULL && (style & wxICON_NONE)) + *type = GTK_MESSAGE_OTHER; + else +#endif // __WXGTK210__ + if (style & wxICON_EXCLAMATION) + *type = GTK_MESSAGE_WARNING; + else if (style & wxICON_ERROR) + *type = GTK_MESSAGE_ERROR; + else if (style & wxICON_INFORMATION) + *type = GTK_MESSAGE_INFO; + else if (style & wxICON_QUESTION) + *type = GTK_MESSAGE_QUESTION; + else + return false; + + return true; +} + +} // namespace wxGTKImpl + +#endif // _GTK_PRIVATE_MSGTYPE_H_ + diff --git a/src/gtk/msgdlg.cpp b/src/gtk/msgdlg.cpp index ca2fa78303..3badb45c63 100644 --- a/src/gtk/msgdlg.cpp +++ b/src/gtk/msgdlg.cpp @@ -25,6 +25,7 @@ #endif #include "wx/gtk/private.h" +#include "wx/gtk/private/messagetype.h" #include "wx/gtk/private/mnemonics.h" #include @@ -137,20 +138,7 @@ void wxMessageDialog::GTKCreateMsgDialog() } } -#ifdef __WXGTK210__ - if ( gtk_check_version(2, 10, 0) == NULL && (m_dialogStyle & wxICON_NONE)) - type = GTK_MESSAGE_OTHER; - else -#endif // __WXGTK210__ - if (m_dialogStyle & wxICON_EXCLAMATION) - type = GTK_MESSAGE_WARNING; - else if (m_dialogStyle & wxICON_ERROR) - type = GTK_MESSAGE_ERROR; - else if (m_dialogStyle & wxICON_INFORMATION) - type = GTK_MESSAGE_INFO; - else if (m_dialogStyle & wxICON_QUESTION) - type = GTK_MESSAGE_QUESTION; - else + if ( !wxGTKImpl::ConvertMessageTypeFromWX(m_dialogStyle, &type) ) { // if no style is explicitly specified, detect the suitable icon // ourselves (this can be disabled by using wxICON_NONE)