added wxArtProvider::GetMessageBoxIcon() to avoid duplicating the same code in generic message and log dialogs (and soon notification message too)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -148,6 +148,11 @@ public:
|
||||
const wxArtClient& client = wxART_OTHER,
|
||||
const wxSize& size = wxDefaultSize);
|
||||
|
||||
// Helper used by several generic classes: return the icon corresponding to
|
||||
// the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one
|
||||
// can be set)
|
||||
static wxIcon GetMessageBoxIcon(int flags);
|
||||
|
||||
// Query the providers for iconbundle with given ID and return it. Return
|
||||
// wxNullIconBundle if no provider provides it.
|
||||
static wxIconBundle GetIconBundle(const wxArtID& id,
|
||||
|
@@ -303,6 +303,36 @@ wxArtProvider::~wxArtProvider()
|
||||
return icon;
|
||||
}
|
||||
|
||||
/* static */
|
||||
wxIcon wxArtProvider::GetMessageBoxIcon(int flags)
|
||||
{
|
||||
wxIcon icon;
|
||||
switch ( flags & wxICON_MASK )
|
||||
{
|
||||
default:
|
||||
wxFAIL_MSG(_T("incorrect message box icon flags"));
|
||||
// fall through
|
||||
|
||||
case wxICON_ERROR:
|
||||
icon = wxArtProvider::GetIcon(wxART_ERROR, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_INFORMATION:
|
||||
icon = wxArtProvider::GetIcon(wxART_INFORMATION, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_WARNING:
|
||||
icon = wxArtProvider::GetIcon(wxART_WARNING, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_QUESTION:
|
||||
icon = wxArtProvider::GetIcon(wxART_QUESTION, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
}
|
||||
|
||||
return icon;
|
||||
}
|
||||
|
||||
#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
|
||||
#include <gtk/gtk.h>
|
||||
extern GtkIconSize wxArtClientToIconSize(const wxArtClient& client);
|
||||
|
@@ -793,37 +793,16 @@ wxLogDialog::wxLogDialog(wxWindow *parent,
|
||||
wxBoxSizer *sizerTop = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer *sizerAll = new wxBoxSizer(isPda ? wxVERTICAL : wxHORIZONTAL);
|
||||
|
||||
wxBitmap bitmap;
|
||||
switch ( style & wxICON_MASK )
|
||||
{
|
||||
case wxICON_ERROR:
|
||||
bitmap = wxArtProvider::GetBitmap(wxART_ERROR, wxART_MESSAGE_BOX);
|
||||
#ifdef __WXPM__
|
||||
bitmap.SetId(wxICON_SMALL_ERROR);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case wxICON_INFORMATION:
|
||||
bitmap = wxArtProvider::GetBitmap(wxART_INFORMATION, wxART_MESSAGE_BOX);
|
||||
#ifdef __WXPM__
|
||||
bitmap.SetId(wxICON_SMALL_INFO);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case wxICON_WARNING:
|
||||
bitmap = wxArtProvider::GetBitmap(wxART_WARNING, wxART_MESSAGE_BOX);
|
||||
#ifdef __WXPM__
|
||||
bitmap.SetId(wxICON_SMALL_WARNING);
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG(_T("incorrect log style"));
|
||||
}
|
||||
|
||||
if (!isPda)
|
||||
sizerAll->Add(new wxStaticBitmap(this, wxID_ANY, bitmap), 0,
|
||||
wxALIGN_CENTRE_VERTICAL);
|
||||
{
|
||||
wxStaticBitmap *icon = new wxStaticBitmap
|
||||
(
|
||||
this,
|
||||
wxID_ANY,
|
||||
wxArtProvider::GetMessageBoxIcon(style)
|
||||
);
|
||||
sizerAll->Add(icon, 0, wxALIGN_CENTRE_VERTICAL);
|
||||
}
|
||||
|
||||
// create the text sizer with a minimal size so that we are sure it won't be too small
|
||||
wxString message = EllipsizeString(messages.Last());
|
||||
|
@@ -83,30 +83,12 @@ void wxGenericMessageDialog::DoCreateMsgdialog()
|
||||
// 1) icon
|
||||
if (m_dialogStyle & wxICON_MASK)
|
||||
{
|
||||
wxBitmap bitmap;
|
||||
switch ( m_dialogStyle & wxICON_MASK )
|
||||
{
|
||||
default:
|
||||
wxFAIL_MSG(_T("incorrect log style"));
|
||||
// fall through
|
||||
|
||||
case wxICON_ERROR:
|
||||
bitmap = wxArtProvider::GetIcon(wxART_ERROR, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_INFORMATION:
|
||||
bitmap = wxArtProvider::GetIcon(wxART_INFORMATION, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_WARNING:
|
||||
bitmap = wxArtProvider::GetIcon(wxART_WARNING, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
|
||||
case wxICON_QUESTION:
|
||||
bitmap = wxArtProvider::GetIcon(wxART_QUESTION, wxART_MESSAGE_BOX);
|
||||
break;
|
||||
}
|
||||
wxStaticBitmap *icon = new wxStaticBitmap(this, wxID_ANY, bitmap);
|
||||
wxStaticBitmap *icon = new wxStaticBitmap
|
||||
(
|
||||
this,
|
||||
wxID_ANY,
|
||||
wxArtProvider::GetMessageBoxIcon(m_dialogStyle)
|
||||
);
|
||||
if (is_pda)
|
||||
topsizer->Add( icon, 0, wxTOP|wxLEFT|wxRIGHT | wxALIGN_LEFT, 10 );
|
||||
else
|
||||
|
Reference in New Issue
Block a user