]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dynlib.h
Make DoGetBestSize cache the value of GetSize() the first time it is called
[wxWidgets.git] / include / wx / dynlib.h
index 3cd25fbf7bdea6047896fe16a5cb2a4cf07dc553..32b569ccdb557d804503a09ad74bcbaea48ab692 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_DYNLIB_H__
 #define _WX_DYNLIB_H__
 
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #   pragma interface "dynlib.h"
 #endif
 
@@ -49,6 +49,7 @@
 #elif defined(__DARWIN__)
     typedef void               *wxDllType;
 #elif defined(__WXMAC__)
+    #include <CodeFragments.h>
     typedef CFragConnectionID   wxDllType;
 #else
     #error "Dynamic Loading classes can't be compiled on this platform, sorry."
@@ -81,13 +82,13 @@ enum wxDLFlags
 enum wxDynamicLibraryCategory
 {
     wxDL_LIBRARY,       // standard library
-    wxDL_MODULE,        // loadable module/plugin
+    wxDL_MODULE         // loadable module/plugin
 };
 
 enum wxPluginCategory
 {
     wxDL_PLUGIN_GUI,    // plugin that uses GUI classes
-    wxDL_PLUGIN_BASE,   // wxBase-only plugin
+    wxDL_PLUGIN_BASE    // wxBase-only plugin
 };
 
 // ----------------------------------------------------------------------------
@@ -141,8 +142,11 @@ public:
     // doing this
     wxDllType Detach() { wxDllType h = m_handle; m_handle = 0; return h; }
 
+    // unload the given library handle (presumably returned by Detach() before)
+    static void Unload(wxDllType handle);
+
     // unload the library, also done automatically in dtor
-    void Unload();
+    void Unload() { if ( IsLoaded() ) { Unload(m_handle); m_handle = 0; } }
 
     // Return the raw handle from dlopen and friends.
     wxDllType GetLibHandle() const { return m_handle; }
@@ -168,8 +172,9 @@ public:
 
     // return name of wxWindows plugin (adds compiler and version info
     // to the filename):
-    static wxString CanonicalizePluginName(const wxString& name,
-                                           wxPluginCategory cat);
+    static wxString
+    CanonicalizePluginName(const wxString& name,
+                           wxPluginCategory cat = wxDL_PLUGIN_GUI);
 
     // return plugin directory on platforms where it makes sense and empty
     // string on others: