diff --git a/Makefile.in b/Makefile.in
index 1bb35de7ee..4b0c2dd420 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -3820,7 +3820,6 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/anidecod.h \
wx/animdecod.h \
wx/appprogress.h \
- wx/artids.h \
wx/artprov.h \
wx/bitmap.h \
wx/bookctrl.h \
diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl
index 03af3f1767..b5c240db5f 100644
--- a/build/bakefiles/files.bkl
+++ b/build/bakefiles/files.bkl
@@ -1131,7 +1131,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/anidecod.h
wx/animdecod.h
wx/appprogress.h
- wx/artids.h
wx/artprov.h
wx/bitmap.h
wx/bookctrl.h
diff --git a/build/cmake/files.cmake b/build/cmake/files.cmake
index 01e540ee82..f3db68b0bd 100644
--- a/build/cmake/files.cmake
+++ b/build/cmake/files.cmake
@@ -1039,7 +1039,6 @@ set(GUI_CMN_HDR
wx/anidecod.h
wx/animdecod.h
wx/appprogress.h
- wx/artids.h
wx/artprov.h
wx/bitmap.h
wx/bookctrl.h
diff --git a/build/files b/build/files
index 45114b2546..759ab54db1 100644
--- a/build/files
+++ b/build/files
@@ -936,7 +936,6 @@ GUI_CMN_HDR =
wx/animdecod.h
wx/anybutton.h
wx/appprogress.h
- wx/artids.h
wx/artprov.h
wx/bannerwindow.h
wx/bitmap.h
diff --git a/build/msw/wx_core.vcxproj b/build/msw/wx_core.vcxproj
index aaf22c2c52..8089f36d7b 100644
--- a/build/msw/wx_core.vcxproj
+++ b/build/msw/wx_core.vcxproj
@@ -1502,7 +1502,6 @@
-
diff --git a/build/msw/wx_core.vcxproj.filters b/build/msw/wx_core.vcxproj.filters
index 56115e13ee..83c265118a 100644
--- a/build/msw/wx_core.vcxproj.filters
+++ b/build/msw/wx_core.vcxproj.filters
@@ -1108,9 +1108,6 @@
Common Headers
-
- Common Headers
-
Common Headers
diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj
index 9c89c30fce..ad378068ce 100644
--- a/build/msw/wx_vc7_core.vcproj
+++ b/build/msw/wx_vc7_core.vcproj
@@ -2081,9 +2081,6 @@
-
-
diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj
index 5dc5a817f8..e956ab6df8 100644
--- a/build/msw/wx_vc8_core.vcproj
+++ b/build/msw/wx_vc8_core.vcproj
@@ -3276,10 +3276,6 @@
RelativePath="..\..\include\wx\ribbon\art_internal.h"
>
-
-
diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj
index fe86df8893..a6d3ec7b1d 100644
--- a/build/msw/wx_vc9_core.vcproj
+++ b/build/msw/wx_vc9_core.vcproj
@@ -3272,10 +3272,6 @@
RelativePath="..\..\include\wx\ribbon\art_internal.h"
>
-
-
diff --git a/include/wx/artids.h b/include/wx/artids.h
deleted file mode 100644
index 5d5db302c0..0000000000
--- a/include/wx/artids.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name: wx/artids.h
-// Purpose: wxArtProvider client and art IDs
-// Author: Stefan Brüns
-// Created: 2020-07-31 (extracted from artprov.h)
-// Copyright: (c) Stefan Brüns
-// Licence: wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-// This file deliberately omits include guards so it can
-// be included and processed multiple times
-
-// ----------------------------------------------------------------------------
-// Art clients
-// ----------------------------------------------------------------------------
-
-wxART_MAKE_CLIENT_ID(wxART_TOOLBAR)
-wxART_MAKE_CLIENT_ID(wxART_MENU)
-wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON)
-
-wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG)
-wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)
-wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)
-wxART_MAKE_CLIENT_ID(wxART_BUTTON)
-wxART_MAKE_CLIENT_ID(wxART_LIST)
-
-wxART_MAKE_CLIENT_ID(wxART_OTHER)
-
-// ----------------------------------------------------------------------------
-// Art IDs
-// ----------------------------------------------------------------------------
-
-wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK)
-wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK)
-wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL)
-wxART_MAKE_ART_ID(wxART_HELP_SETTINGS)
-wxART_MAKE_ART_ID(wxART_HELP_BOOK)
-wxART_MAKE_ART_ID(wxART_HELP_FOLDER)
-wxART_MAKE_ART_ID(wxART_HELP_PAGE)
-wxART_MAKE_ART_ID(wxART_GO_BACK)
-wxART_MAKE_ART_ID(wxART_GO_FORWARD)
-wxART_MAKE_ART_ID(wxART_GO_UP)
-wxART_MAKE_ART_ID(wxART_GO_DOWN)
-wxART_MAKE_ART_ID(wxART_GO_TO_PARENT)
-wxART_MAKE_ART_ID(wxART_GO_HOME)
-wxART_MAKE_ART_ID(wxART_GOTO_FIRST)
-wxART_MAKE_ART_ID(wxART_GOTO_LAST)
-wxART_MAKE_ART_ID(wxART_FILE_OPEN)
-wxART_MAKE_ART_ID(wxART_FILE_SAVE)
-wxART_MAKE_ART_ID(wxART_FILE_SAVE_AS)
-wxART_MAKE_ART_ID(wxART_PRINT)
-wxART_MAKE_ART_ID(wxART_HELP)
-wxART_MAKE_ART_ID(wxART_TIP)
-wxART_MAKE_ART_ID(wxART_REPORT_VIEW)
-wxART_MAKE_ART_ID(wxART_LIST_VIEW)
-wxART_MAKE_ART_ID(wxART_NEW_DIR)
-wxART_MAKE_ART_ID(wxART_HARDDISK)
-wxART_MAKE_ART_ID(wxART_FLOPPY)
-wxART_MAKE_ART_ID(wxART_CDROM)
-wxART_MAKE_ART_ID(wxART_REMOVABLE)
-wxART_MAKE_ART_ID(wxART_FOLDER)
-wxART_MAKE_ART_ID(wxART_FOLDER_OPEN)
-wxART_MAKE_ART_ID(wxART_GO_DIR_UP)
-wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE)
-wxART_MAKE_ART_ID(wxART_NORMAL_FILE)
-wxART_MAKE_ART_ID(wxART_TICK_MARK)
-wxART_MAKE_ART_ID(wxART_CROSS_MARK)
-wxART_MAKE_ART_ID(wxART_ERROR)
-wxART_MAKE_ART_ID(wxART_QUESTION)
-wxART_MAKE_ART_ID(wxART_WARNING)
-wxART_MAKE_ART_ID(wxART_INFORMATION)
-wxART_MAKE_ART_ID(wxART_MISSING_IMAGE)
-
-wxART_MAKE_ART_ID(wxART_COPY)
-wxART_MAKE_ART_ID(wxART_CUT)
-wxART_MAKE_ART_ID(wxART_PASTE)
-wxART_MAKE_ART_ID(wxART_DELETE)
-wxART_MAKE_ART_ID(wxART_NEW)
-
-wxART_MAKE_ART_ID(wxART_UNDO)
-wxART_MAKE_ART_ID(wxART_REDO)
-
-wxART_MAKE_ART_ID(wxART_PLUS)
-wxART_MAKE_ART_ID(wxART_MINUS)
-
-wxART_MAKE_ART_ID(wxART_CLOSE)
-wxART_MAKE_ART_ID(wxART_QUIT)
-
-wxART_MAKE_ART_ID(wxART_FIND)
-wxART_MAKE_ART_ID(wxART_FIND_AND_REPLACE)
-
-wxART_MAKE_ART_ID(wxART_FULL_SCREEN)
-
-wxART_MAKE_ART_ID(wxART_EDIT)
diff --git a/include/wx/artprov.h b/include/wx/artprov.h
index 0746af3808..6dd2850a82 100644
--- a/include/wx/artprov.h
+++ b/include/wx/artprov.h
@@ -28,16 +28,92 @@ typedef wxString wxArtClient;
typedef wxString wxArtID;
#define wxART_MAKE_CLIENT_ID_FROM_STR(id) ((id) + wxASCII_STR("_C"))
+#define wxART_MAKE_CLIENT_ID(id) (#id "_C")
#define wxART_MAKE_ART_ID_FROM_STR(id) (id)
+#define wxART_MAKE_ART_ID(id) (#id)
-#define wxART_MAKE_CLIENT_ID(id) \
- extern WXDLLIMPEXP_DATA_CORE(const wxArtClient) id;
-#define wxART_MAKE_ART_ID(id) \
- extern WXDLLIMPEXP_DATA_CORE(const wxArtID) id;
+// ----------------------------------------------------------------------------
+// Art clients
+// ----------------------------------------------------------------------------
-#include "wx/artids.h"
-#undef wxART_MAKE_ART_ID
-#undef wxART_MAKE_CLIENT_ID
+#define wxART_TOOLBAR wxART_MAKE_CLIENT_ID(wxART_TOOLBAR)
+#define wxART_MENU wxART_MAKE_CLIENT_ID(wxART_MENU)
+#define wxART_FRAME_ICON wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON)
+
+#define wxART_CMN_DIALOG wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG)
+#define wxART_HELP_BROWSER wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)
+#define wxART_MESSAGE_BOX wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)
+#define wxART_BUTTON wxART_MAKE_CLIENT_ID(wxART_BUTTON)
+#define wxART_LIST wxART_MAKE_CLIENT_ID(wxART_LIST)
+
+#define wxART_OTHER wxART_MAKE_CLIENT_ID(wxART_OTHER)
+
+// ----------------------------------------------------------------------------
+// Art IDs
+// ----------------------------------------------------------------------------
+
+#define wxART_ADD_BOOKMARK wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK)
+#define wxART_DEL_BOOKMARK wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK)
+#define wxART_HELP_SIDE_PANEL wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL)
+#define wxART_HELP_SETTINGS wxART_MAKE_ART_ID(wxART_HELP_SETTINGS)
+#define wxART_HELP_BOOK wxART_MAKE_ART_ID(wxART_HELP_BOOK)
+#define wxART_HELP_FOLDER wxART_MAKE_ART_ID(wxART_HELP_FOLDER)
+#define wxART_HELP_PAGE wxART_MAKE_ART_ID(wxART_HELP_PAGE)
+#define wxART_GO_BACK wxART_MAKE_ART_ID(wxART_GO_BACK)
+#define wxART_GO_FORWARD wxART_MAKE_ART_ID(wxART_GO_FORWARD)
+#define wxART_GO_UP wxART_MAKE_ART_ID(wxART_GO_UP)
+#define wxART_GO_DOWN wxART_MAKE_ART_ID(wxART_GO_DOWN)
+#define wxART_GO_TO_PARENT wxART_MAKE_ART_ID(wxART_GO_TO_PARENT)
+#define wxART_GO_HOME wxART_MAKE_ART_ID(wxART_GO_HOME)
+#define wxART_GOTO_FIRST wxART_MAKE_ART_ID(wxART_GOTO_FIRST)
+#define wxART_GOTO_LAST wxART_MAKE_ART_ID(wxART_GOTO_LAST)
+#define wxART_FILE_OPEN wxART_MAKE_ART_ID(wxART_FILE_OPEN)
+#define wxART_FILE_SAVE wxART_MAKE_ART_ID(wxART_FILE_SAVE)
+#define wxART_FILE_SAVE_AS wxART_MAKE_ART_ID(wxART_FILE_SAVE_AS)
+#define wxART_PRINT wxART_MAKE_ART_ID(wxART_PRINT)
+#define wxART_HELP wxART_MAKE_ART_ID(wxART_HELP)
+#define wxART_TIP wxART_MAKE_ART_ID(wxART_TIP)
+#define wxART_REPORT_VIEW wxART_MAKE_ART_ID(wxART_REPORT_VIEW)
+#define wxART_LIST_VIEW wxART_MAKE_ART_ID(wxART_LIST_VIEW)
+#define wxART_NEW_DIR wxART_MAKE_ART_ID(wxART_NEW_DIR)
+#define wxART_HARDDISK wxART_MAKE_ART_ID(wxART_HARDDISK)
+#define wxART_FLOPPY wxART_MAKE_ART_ID(wxART_FLOPPY)
+#define wxART_CDROM wxART_MAKE_ART_ID(wxART_CDROM)
+#define wxART_REMOVABLE wxART_MAKE_ART_ID(wxART_REMOVABLE)
+#define wxART_FOLDER wxART_MAKE_ART_ID(wxART_FOLDER)
+#define wxART_FOLDER_OPEN wxART_MAKE_ART_ID(wxART_FOLDER_OPEN)
+#define wxART_GO_DIR_UP wxART_MAKE_ART_ID(wxART_GO_DIR_UP)
+#define wxART_EXECUTABLE_FILE wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE)
+#define wxART_NORMAL_FILE wxART_MAKE_ART_ID(wxART_NORMAL_FILE)
+#define wxART_TICK_MARK wxART_MAKE_ART_ID(wxART_TICK_MARK)
+#define wxART_CROSS_MARK wxART_MAKE_ART_ID(wxART_CROSS_MARK)
+#define wxART_ERROR wxART_MAKE_ART_ID(wxART_ERROR)
+#define wxART_QUESTION wxART_MAKE_ART_ID(wxART_QUESTION)
+#define wxART_WARNING wxART_MAKE_ART_ID(wxART_WARNING)
+#define wxART_INFORMATION wxART_MAKE_ART_ID(wxART_INFORMATION)
+#define wxART_MISSING_IMAGE wxART_MAKE_ART_ID(wxART_MISSING_IMAGE)
+
+#define wxART_COPY wxART_MAKE_ART_ID(wxART_COPY)
+#define wxART_CUT wxART_MAKE_ART_ID(wxART_CUT)
+#define wxART_PASTE wxART_MAKE_ART_ID(wxART_PASTE)
+#define wxART_DELETE wxART_MAKE_ART_ID(wxART_DELETE)
+#define wxART_NEW wxART_MAKE_ART_ID(wxART_NEW)
+
+#define wxART_UNDO wxART_MAKE_ART_ID(wxART_UNDO)
+#define wxART_REDO wxART_MAKE_ART_ID(wxART_REDO)
+
+#define wxART_PLUS wxART_MAKE_ART_ID(wxART_PLUS)
+#define wxART_MINUS wxART_MAKE_ART_ID(wxART_MINUS)
+
+#define wxART_CLOSE wxART_MAKE_ART_ID(wxART_CLOSE)
+#define wxART_QUIT wxART_MAKE_ART_ID(wxART_QUIT)
+
+#define wxART_FIND wxART_MAKE_ART_ID(wxART_FIND)
+#define wxART_FIND_AND_REPLACE wxART_MAKE_ART_ID(wxART_FIND_AND_REPLACE)
+
+#define wxART_FULL_SCREEN wxART_MAKE_ART_ID(wxART_FULL_SCREEN)
+
+#define wxART_EDIT wxART_MAKE_ART_ID(wxART_EDIT)
// ----------------------------------------------------------------------------
// wxArtProvider class
@@ -78,13 +154,13 @@ public:
// Query the providers for bitmap with given ID and return it. Return
// wxNullBitmap if no provider provides it.
static wxBitmap GetBitmap(const wxArtID& id,
- const wxArtClient& client = wxART_OTHER,
+ const wxArtClient& client = wxASCII_STR(wxART_OTHER),
const wxSize& size = wxDefaultSize);
// Query the providers for icon with given ID and return it. Return
// wxNullIcon if no provider provides it.
static wxIcon GetIcon(const wxArtID& id,
- const wxArtClient& client = wxART_OTHER,
+ const wxArtClient& client = wxASCII_STR(wxART_OTHER),
const wxSize& size = wxDefaultSize);
// Helper used by GetMessageBoxIcon(): return the art id corresponding to
@@ -97,13 +173,13 @@ public:
// can be set)
static wxIcon GetMessageBoxIcon(int flags)
{
- return GetIcon(GetMessageBoxIconId(flags), wxART_MESSAGE_BOX);
+ return GetIcon(GetMessageBoxIconId(flags), wxASCII_STR(wxART_MESSAGE_BOX));
}
// Query the providers for iconbundle with given ID and return it. Return
// wxNullIconBundle if no provider provides it.
static wxIconBundle GetIconBundle(const wxArtID& id,
- const wxArtClient& client = wxART_OTHER);
+ const wxArtClient& client = wxASCII_STR(wxART_OTHER));
// Gets native size for given 'client' or wxDefaultSize if it doesn't
// have native equivalent
diff --git a/include/wx/xrc/xmlres.h b/include/wx/xrc/xmlres.h
index 8b4710b676..6507afe6d9 100644
--- a/include/wx/xrc/xmlres.h
+++ b/include/wx/xrc/xmlres.h
@@ -565,27 +565,27 @@ public:
// Gets a bitmap.
wxBitmap GetBitmap(const wxString& param = wxT("bitmap"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) wxOVERRIDE;
// Gets a bitmap from an XmlNode.
wxBitmap GetBitmap(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) wxOVERRIDE;
// Gets an icon.
wxIcon GetIcon(const wxString& param = wxT("icon"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) wxOVERRIDE;
// Gets an icon from an XmlNode.
wxIcon GetIcon(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) wxOVERRIDE;
// Gets an icon bundle.
wxIconBundle GetIconBundle(const wxString& param,
- const wxArtClient& defaultArtClient = wxART_OTHER) wxOVERRIDE;
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER)) wxOVERRIDE;
// Gets an image list.
wxImageList *GetImageList(const wxString& param = wxT("imagelist")) wxOVERRIDE;
diff --git a/include/wx/xrc/xmlreshandler.h b/include/wx/xrc/xmlreshandler.h
index b478356d6d..7f132b99a9 100644
--- a/include/wx/xrc/xmlreshandler.h
+++ b/include/wx/xrc/xmlreshandler.h
@@ -85,19 +85,19 @@ public:
virtual wxSize GetPairInts(const wxString& param) = 0;
virtual wxDirection GetDirection(const wxString& param, wxDirection dir = wxLEFT) = 0;
virtual wxBitmap GetBitmap(const wxString& param = wxT("bitmap"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) = 0;
virtual wxBitmap GetBitmap(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) = 0;
virtual wxIcon GetIcon(const wxString& param = wxT("icon"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) = 0;
virtual wxIcon GetIcon(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize) = 0;
virtual wxIconBundle GetIconBundle(const wxString& param,
- const wxArtClient& defaultArtClient = wxART_OTHER) = 0;
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER)) = 0;
virtual wxImageList *GetImageList(const wxString& param = wxT("imagelist")) = 0;
#if wxUSE_ANIMATIONCTRL
@@ -321,31 +321,31 @@ protected:
return GetImpl()->GetDirection(param, dir);
}
wxBitmap GetBitmap(const wxString& param = wxT("bitmap"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize)
{
return GetImpl()->GetBitmap(param, defaultArtClient, size);
}
wxBitmap GetBitmap(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize)
{
return GetImpl()->GetBitmap(node, defaultArtClient, size);
}
wxIcon GetIcon(const wxString& param = wxT("icon"),
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize)
{
return GetImpl()->GetIcon(param, defaultArtClient, size);
}
wxIcon GetIcon(const wxXmlNode* node,
- const wxArtClient& defaultArtClient = wxART_OTHER,
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER),
wxSize size = wxDefaultSize)
{
return GetImpl()->GetIcon(node, defaultArtClient, size);
}
wxIconBundle GetIconBundle(const wxString& param,
- const wxArtClient& defaultArtClient = wxART_OTHER)
+ const wxArtClient& defaultArtClient = wxASCII_STR(wxART_OTHER))
{
return GetImpl()->GetIconBundle(param, defaultArtClient);
}
diff --git a/interface/wx/artprov.h b/interface/wx/artprov.h
index 477c59c37e..8f34231527 100644
--- a/interface/wx/artprov.h
+++ b/interface/wx/artprov.h
@@ -16,80 +16,80 @@ typedef wxString wxArtClient;
typedef wxString wxArtID;
-const wxArtClient wxART_TOOLBAR;
-const wxArtClient wxART_MENU;
-const wxArtClient wxART_FRAME_ICON;
+const char* wxART_TOOLBAR;
+const char* wxART_MENU;
+const char* wxART_FRAME_ICON;
-const wxArtClient wxART_CMN_DIALOG;
-const wxArtClient wxART_HELP_BROWSER;
-const wxArtClient wxART_MESSAGE_BOX;
-const wxArtClient wxART_BUTTON;
-const wxArtClient wxART_LIST;
+const char* wxART_CMN_DIALOG;
+const char* wxART_HELP_BROWSER;
+const char* wxART_MESSAGE_BOX;
+const char* wxART_BUTTON;
+const char* wxART_LIST;
-const wxArtClient wxART_OTHER;
+const char* wxART_OTHER;
-const wxArtID wxART_ADD_BOOKMARK;
-const wxArtID wxART_DEL_BOOKMARK;
-const wxArtID wxART_HELP_SIDE_PANEL;
-const wxArtID wxART_HELP_SETTINGS;
-const wxArtID wxART_HELP_BOOK;
-const wxArtID wxART_HELP_FOLDER;
-const wxArtID wxART_HELP_PAGE;
-const wxArtID wxART_GO_BACK;
-const wxArtID wxART_GO_FORWARD;
-const wxArtID wxART_GO_UP;
-const wxArtID wxART_GO_DOWN;
-const wxArtID wxART_GO_TO_PARENT;
-const wxArtID wxART_GO_HOME;
-const wxArtID wxART_GOTO_FIRST;
-const wxArtID wxART_GOTO_LAST;
-const wxArtID wxART_FILE_OPEN;
-const wxArtID wxART_FILE_SAVE;
-const wxArtID wxART_FILE_SAVE_AS;
-const wxArtID wxART_PRINT;
-const wxArtID wxART_HELP;
-const wxArtID wxART_TIP;
-const wxArtID wxART_REPORT_VIEW;
-const wxArtID wxART_LIST_VIEW;
-const wxArtID wxART_NEW_DIR;
-const wxArtID wxART_HARDDISK;
-const wxArtID wxART_FLOPPY;
-const wxArtID wxART_CDROM;
-const wxArtID wxART_REMOVABLE;
-const wxArtID wxART_FOLDER;
-const wxArtID wxART_FOLDER_OPEN;
-const wxArtID wxART_GO_DIR_UP;
-const wxArtID wxART_EXECUTABLE_FILE;
-const wxArtID wxART_NORMAL_FILE;
-const wxArtID wxART_TICK_MARK;
-const wxArtID wxART_CROSS_MARK;
-const wxArtID wxART_ERROR;
-const wxArtID wxART_QUESTION;
-const wxArtID wxART_WARNING;
-const wxArtID wxART_INFORMATION;
-const wxArtID wxART_MISSING_IMAGE;
+const char* wxART_ADD_BOOKMARK;
+const char* wxART_DEL_BOOKMARK;
+const char* wxART_HELP_SIDE_PANEL;
+const char* wxART_HELP_SETTINGS;
+const char* wxART_HELP_BOOK;
+const char* wxART_HELP_FOLDER;
+const char* wxART_HELP_PAGE;
+const char* wxART_GO_BACK;
+const char* wxART_GO_FORWARD;
+const char* wxART_GO_UP;
+const char* wxART_GO_DOWN;
+const char* wxART_GO_TO_PARENT;
+const char* wxART_GO_HOME;
+const char* wxART_GOTO_FIRST;
+const char* wxART_GOTO_LAST;
+const char* wxART_FILE_OPEN;
+const char* wxART_FILE_SAVE;
+const char* wxART_FILE_SAVE_AS;
+const char* wxART_PRINT;
+const char* wxART_HELP;
+const char* wxART_TIP;
+const char* wxART_REPORT_VIEW;
+const char* wxART_LIST_VIEW;
+const char* wxART_NEW_DIR;
+const char* wxART_HARDDISK;
+const char* wxART_FLOPPY;
+const char* wxART_CDROM;
+const char* wxART_REMOVABLE;
+const char* wxART_FOLDER;
+const char* wxART_FOLDER_OPEN;
+const char* wxART_GO_DIR_UP;
+const char* wxART_EXECUTABLE_FILE;
+const char* wxART_NORMAL_FILE;
+const char* wxART_TICK_MARK;
+const char* wxART_CROSS_MARK;
+const char* wxART_ERROR;
+const char* wxART_QUESTION;
+const char* wxART_WARNING;
+const char* wxART_INFORMATION;
+const char* wxART_MISSING_IMAGE;
-const wxArtID wxART_COPY;
-const wxArtID wxART_CUT;
-const wxArtID wxART_PASTE;
-const wxArtID wxART_DELETE;
-const wxArtID wxART_NEW;
+const char* wxART_COPY;
+const char* wxART_CUT;
+const char* wxART_PASTE;
+const char* wxART_DELETE;
+const char* wxART_NEW;
-const wxArtID wxART_UNDO;
-const wxArtID wxART_REDO;
+const char* wxART_UNDO;
+const char* wxART_REDO;
-const wxArtID wxART_PLUS;
-const wxArtID wxART_MINUS;
+const char* wxART_PLUS;
+const char* wxART_MINUS;
-const wxArtID wxART_CLOSE;
-const wxArtID wxART_QUIT;
+const char* wxART_CLOSE;
+const char* wxART_QUIT;
-const wxArtID wxART_FIND;
-const wxArtID wxART_FIND_AND_REPLACE;
+const char* wxART_FIND;
+const char* wxART_FIND_AND_REPLACE;
-const wxArtID wxART_FULL_SCREEN;
-const wxArtID wxART_EDIT;
+const char* wxART_FULL_SCREEN;
+const char* wxART_EDIT;
/**
@@ -200,6 +200,10 @@ const wxArtID wxART_EDIT;
+ @note When building with @c wxNO_IMPLICIT_WXSTRING_ENCODING defined (see
+ @ref overview_string for more details), you need to explicitly use
+ wxASCII_STR() around these constants.
+
Additionally, any string recognized by custom art providers registered using
wxArtProvider::Push may be used.
diff --git a/interface/wx/string.h b/interface/wx/string.h
index a486533992..6adee24bab 100644
--- a/interface/wx/string.h
+++ b/interface/wx/string.h
@@ -1776,6 +1776,12 @@ public:
/**
Converts the string or character from an ASCII, 7-bit form
to the native wxString representation.
+
+ Input must consist only of 7-bit (i.e. less than 128) ASCII characters,
+ the behaviour in presence of non-ASCII characters is undefined but will
+ result in assert failures.
+
+ @see wxASCII_STR()
*/
static wxString FromAscii(const char* s);
static wxString FromAscii(const unsigned char* s);
@@ -2069,4 +2075,14 @@ public:
template
inline bool wxStringCheck(const wxString& val);
+/**
+ Convenience macro for explicitly constructing wxString from ASCII strings.
+
+ This macro simply expands to a call to wxString::FromAscii() but is
+ slightly shorter.
+
+ @since 3.1.4
+ */
+wxString wxASCII_STR(const char* s);
+
//@}
diff --git a/src/common/artprov.cpp b/src/common/artprov.cpp
index 7ef0aba6aa..e7466eee26 100644
--- a/src/common/artprov.cpp
+++ b/src/common/artprov.cpp
@@ -21,12 +21,6 @@
#include "wx/artprov.h"
-#define wxART_MAKE_CLIENT_ID(id) \
- extern WXDLLIMPEXP_DATA_CORE(const wxArtClient) id = wxASCII_STR(#id "_C");
-#define wxART_MAKE_ART_ID(id) \
- extern WXDLLIMPEXP_DATA_CORE(const wxArtID) id = wxASCII_STR(#id);
-#include "wx/artids.h"
-
#ifndef WX_PRECOMP
#include "wx/list.h"
#include "wx/log.h"
diff --git a/src/gtk/artgtk.cpp b/src/gtk/artgtk.cpp
index ecaa9c1e48..c4ecdd8b1c 100644
--- a/src/gtk/artgtk.cpp
+++ b/src/gtk/artgtk.cpp
@@ -52,27 +52,13 @@ protected:
namespace
{
-wxString wxArtIDToStock(const wxArtID& id)
-{
- struct wxArtStockMapping
- {
- wxArtStockMapping(const wxArtID& artId, const wxString& stockId)
- : m_artId(artId), m_stockId(stockId)
- {
- }
-
- wxArtID m_artId;
- wxString m_stockId;
- };
-
#ifdef __WXGTK3__
- #define ART(wxId, unused, themeId) wxArtStockMapping(wxId, themeId),
+ #define ART(wxId, unused, themeId) wxId, themeId,
#else
- #define ART(wxId, stockId, unused) wxArtStockMapping(wxId, stockId),
+ #define ART(wxId, stockId, unused) wxId, stockId,
#endif
- static const wxArtStockMapping wxId2GtkMap[] =
- {
+const wxString wxId2Gtk[] = {
ART(wxART_ERROR, GTK_STOCK_DIALOG_ERROR, "dialog-error")
ART(wxART_INFORMATION, GTK_STOCK_DIALOG_INFO, "dialog-information")
ART(wxART_WARNING, GTK_STOCK_DIALOG_WARNING, "dialog-warning")
@@ -136,21 +122,26 @@ wxString wxArtIDToStock(const wxArtID& id)
ART(wxART_FIND_AND_REPLACE, GTK_STOCK_FIND_AND_REPLACE, "edit-find-replace")
ART(wxART_FULL_SCREEN, GTK_STOCK_FULLSCREEN, "view-fullscreen")
ART(wxART_EDIT, "accessories-text-editor", "accessories-text-editor")
- };
+};
+
#undef ART
+wxString wxArtIDToStock(const wxArtID& id)
+{
// allow passing GTK+ stock IDs to wxArtProvider -- if a recognized wx
// ID wasn't found, pass it to GTK+ in the hope it is a GTK+ or theme
// icon name:
+ wxString ret(id);
- for (unsigned i = 0; i < WXSIZEOF(wxId2GtkMap); i++)
+ for (unsigned i = 0; i < WXSIZEOF(wxId2Gtk); i += 2)
{
- if (id == wxId2GtkMap[i].m_artId)
+ if (id == wxId2Gtk[i])
{
- return wxId2GtkMap[i].m_stockId;
+ ret = wxId2Gtk[i + 1];
+ break;
}
}
- return id;
+ return ret;
}
GtkIconSize ArtClientToIconSize(const wxArtClient& client)
diff --git a/tests/allheaders.h b/tests/allheaders.h
index fd4a87d3e5..7da480582a 100644
--- a/tests/allheaders.h
+++ b/tests/allheaders.h
@@ -397,6 +397,7 @@
#include
#include
#include
+#include
#include
#include
#include