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
This commit is contained in:
Vadim Zeitlin
2009-10-05 22:54:36 +00:00
parent 374ae80f2c
commit ce668f297b
2 changed files with 47 additions and 14 deletions

View File

@@ -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 <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _GTK_PRIVATE_MSGTYPE_H_
#define _GTK_PRIVATE_MSGTYPE_H_
#include <gtk/gtkmessagedialog.h>
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_

View File

@@ -25,6 +25,7 @@
#endif #endif
#include "wx/gtk/private.h" #include "wx/gtk/private.h"
#include "wx/gtk/private/messagetype.h"
#include "wx/gtk/private/mnemonics.h" #include "wx/gtk/private/mnemonics.h"
#include <gtk/gtk.h> #include <gtk/gtk.h>
@@ -137,20 +138,7 @@ void wxMessageDialog::GTKCreateMsgDialog()
} }
} }
#ifdef __WXGTK210__ if ( !wxGTKImpl::ConvertMessageTypeFromWX(m_dialogStyle, &type) )
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 no style is explicitly specified, detect the suitable icon // if no style is explicitly specified, detect the suitable icon
// ourselves (this can be disabled by using wxICON_NONE) // ourselves (this can be disabled by using wxICON_NONE)