sm_providers->Insert(provider);
}
-/*static*/ void wxArtProvider::Insert(wxArtProvider *provider)
+/*static*/ void wxArtProvider::PushBack(wxArtProvider *provider)
{
CommonAddingProvider();
sm_providers->Append(provider);
return icon;
}
-#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
- #include "wx/gtk/private.h"
- extern GtkIconSize wxArtClientToIconSize(const wxArtClient& client);
-#endif // defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
+/* 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;
+}
/*static*/ wxSize wxArtProvider::GetSizeHint(const wxArtClient& client,
bool platform_dependent)
return node->GetData()->DoGetSizeHint(client);
}
- // else return platform dependent size
-
-#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
- // Gtk has specific sizes for each client, see artgtk.cpp
- GtkIconSize gtk_size = wxArtClientToIconSize(client);
- // no size hints for this client
- if (gtk_size == GTK_ICON_SIZE_INVALID)
- return wxDefaultSize;
- gint width, height;
- gtk_icon_size_lookup( gtk_size, &width, &height);
- return wxSize(width, height);
-#else // !GTK+ 2
- // NB: These size hints may have to be adjusted per platform
- if (client == wxART_TOOLBAR)
- return wxSize(16, 15);
- else if (client == wxART_MENU)
- return wxSize(16, 15);
- else if (client == wxART_FRAME_ICON)
- return wxSize(16, 15);
- else if (client == wxART_CMN_DIALOG || client == wxART_MESSAGE_BOX)
- return wxSize(32, 32);
- else if (client == wxART_HELP_BROWSER)
- return wxSize(16, 15);
- else if (client == wxART_BUTTON)
- return wxSize(16, 15);
- else // wxART_OTHER or perhaps a user's client, no specified size
- return wxDefaultSize;
-#endif // GTK+ 2/else
+ return GetNativeSizeHint(client);
+}
+
+#ifndef wxHAS_NATIVE_ART_PROVIDER_IMPL
+/*static*/
+wxSize wxArtProvider::GetNativeSizeHint(const wxArtClient& WXUNUSED(client))
+{
+ // rather than returning some arbitrary value that doesn't make much
+ // sense (as 2.8 used to do), tell the caller that we don't have a clue:
+ return wxDefaultSize;
+}
+
+/*static*/
+void wxArtProvider::InitNativeProvider()
+{
+}
+#endif // !wxHAS_NATIVE_ART_PROVIDER_IMPL
+
+
+/* static */
+bool wxArtProvider::HasNativeProvider()
+{
+#ifdef __WXGTK20__
+ return true;
+#else
+ return false;
+#endif
}
// ----------------------------------------------------------------------------
#endif // WXWIN_COMPATIBILITY_2_6
+#if WXWIN_COMPATIBILITY_2_8
+/* static */ void wxArtProvider::Insert(wxArtProvider *provider)
+{
+ PushBack(provider);
+}
+#endif // WXWIN_COMPATIBILITY_2_8
+
// ============================================================================
// wxArtProviderModule
// ============================================================================