]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dynload.h
XML code needs wchar_t
[wxWidgets.git] / include / wx / dynload.h
index 145ec568a5931efab6fddd65eac167140fe20ea7..0f69c8e70970b5b3816f89c4cf495f64a200d8e5 100644 (file)
@@ -38,7 +38,7 @@
 #include "wx/msw/private.h"
 #endif
 
-class WXDLLEXPORT wxPluginLibrary;
+class WXDLLIMPEXP_BASE wxPluginLibrary;
 
 WX_DECLARE_EXPORTED_STRING_HASH_MAP(wxPluginLibrary *, wxDLManifest);
 typedef wxDLManifest wxDLImports;
@@ -97,8 +97,20 @@ enum wxDLFlags
 #endif
 };
 
+enum wxDynamicLibraryCategory
+{
+    wxDL_LIBRARY,       // standard library
+    wxDL_MODULE,        // loadable module/plugin
+};
 
-class WXDLLEXPORT wxDynamicLibrary
+enum wxPluginCategory
+{
+    wxDL_PLUGIN_GUI,    // plugin that uses GUI classes
+    wxDL_PLUGIN_BASE,   // wxBase-only plugin
+};
+
+
+class WXDLLIMPEXP_BASE wxDynamicLibrary
 {
 public:
 
@@ -159,6 +171,20 @@ public:
     operator bool() const { return IsLoaded(); }
 #endif
 
+    // return platform-specific name of dynamic library with proper extension
+    // and prefix (e.g. "foo.dll" on Windows or "libfoo.so" on Linux)
+    static wxString CanonicalizeName(const wxString& name,
+                                     wxDynamicLibraryCategory cat = wxDL_LIBRARY);
+
+    // return name of wxWindows plugin (adds compiler and version info
+    // to the filename):
+    static wxString CanonicalizePluginName(const wxString& name,
+                                           wxPluginCategory cat);
+
+    // return plugin directory on platforms where it makes sense and empty
+    // string on others:
+    static wxString GetPluginsDirectory();
+
 protected:
 
         // Platform specific shared lib suffix.
@@ -188,7 +214,7 @@ protected:
 //       instantiate this class directly anyway, use wxPluginManager
 //       instead.
 
-class WXDLLEXPORT wxPluginLibrary : public wxDynamicLibrary
+class WXDLLIMPEXP_BASE wxPluginLibrary : public wxDynamicLibrary
 {
 public:
 
@@ -242,7 +268,7 @@ private:
 };
 
 
-class WXDLLEXPORT wxPluginManager
+class WXDLLIMPEXP_BASE wxPluginManager
 {
 public:
 
@@ -308,7 +334,7 @@ private:
     //  serves as a namespace for its static member functions.
 
 #if WXWIN_COMPATIBILITY_2_2
-class WXDLLEXPORT wxDllLoader
+class WXDLLIMPEXP_BASE wxDllLoader
 {
 public: