]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/defs.h
revision contributed by Utensil Candel
[wxWidgets.git] / interface / defs.h
index 9aaed38e01085963c20a6c8e4a88843390d4a99b..8064aab26f7e968b96414996141a096000e4a93a 100644 (file)
 
 
 
+/** @ingroup group_funcmacro_misc */
+//@{
 
 /**
-    This macro is similar to wxDEPRECATED() but can be used
-    to not only declare the function @a func as deprecated but to also provide
-    its (inline) implementation @e body.
+    This macro can be used around a function declaration to generate warnings
+    indicating that this function is deprecated (i.e. obsolete and planned to
+    be removed in the future) when it is used. Only Visual C++ 7 and higher and
+    g++ compilers currently support this functionality.
+
+    Example of use:
+
+    @code
+    // old function, use wxString version instead
+    wxDEPRECATED( void wxGetSomething(char *buf, size_t len) );
+
+    // ...
+    wxString wxGetSomething();
+    @endcode
+
+    @header{wx/defs.h}
+*/
+#define wxDEPRECATED(function)
+
+/**
+    This is a special version of wxDEPRECATED() macro which only does something
+    when the deprecated function is used from the code outside wxWidgets itself
+    but doesn't generate warnings when it is used from wxWidgets.
+
+    It is used with the virtual functions which are called by the library
+    itself -- even if such function is deprecated the library still has to call
+    it to ensure that the existing code overriding it continues to work, but
+    the use of this macro ensures that a deprecation warning will be generated
+    if this function is used from the user code or, in case of Visual C++, even
+    when it is simply overridden.
+
+    @header{wx/defs.h}
+*/
+#define wxDEPRECATED_BUT_USED_INTERNALLY(function)
+
+/**
+    This macro is similar to wxDEPRECATED() but can be used to not only declare
+    the function @a function as deprecated but to also provide its (inline)
+    implementation @a body.
+
     It can be used as following:
 
     @code
     class wxFoo
-        {
-        public:
-            // OldMethod() is deprecated, use NewMethod() instead
-            void NewMethod();
-            wxDEPRECATED_INLINE( void OldMethod(), NewMethod() );
-        };
+    {
+    public:
+        // OldMethod() is deprecated, use NewMethod() instead
+        void NewMethod();
+        wxDEPRECATED_INLINE( void OldMethod(), NewMethod() );
+    };
     @endcode
+
+    @header{wx/defs.h}
 */
-#define wxDEPRECATED_INLINE(func, body)     /* implementation is private */
+#define wxDEPRECATED_INLINE(func, body)
 
 /**
     @c wxEXPLICIT is a macro which expands to the C++ @c explicit keyword if
-    the compiler supports it or nothing otherwise. Thus, it can be used even in the
-    code which might have to be compiled with an old compiler without support for
-    this language feature but still take advantage of it when it is available.
-*/
+    the compiler supports it or nothing otherwise. Thus, it can be used even in
+    the code which might have to be compiled with an old compiler without
+    support for this language feature but still take advantage of it when it is
+    available.
 
+    @header{wx/defs.h}
+*/
+#define wxEXPLICIT
 
 /**
     GNU C++ compiler gives a warning for any class whose destructor is private
     unless it has a friend. This warning may sometimes be useful but it doesn't
-    make sense for reference counted class which always delete themselves (hence
-    destructor should be private) but don't necessarily have any friends, so this
-    macro is provided to disable the warning in such case. The @a name parameter
-    should be the name of the class but is only used to construct a unique friend
-    class name internally. Example of using the macro:
+    make sense for reference counted class which always delete themselves
+    (hence destructor should be private) but don't necessarily have any
+    friends, so this macro is provided to disable the warning in such case. The
+    @a name parameter should be the name of the class but is only used to
+    construct a unique friend class name internally.
+
+    Example of using the macro:
 
     @code
     class RefCounted
-        {
-        public:
-            RefCounted() { m_nRef = 1; }
-            void IncRef() { m_nRef++ ; }
-            void DecRef() { if ( !--m_nRef ) delete this; }
+    {
+    public:
+        RefCounted() { m_nRef = 1; }
+        void IncRef() { m_nRef++ ; }
+        void DecRef() { if ( !--m_nRef ) delete this; }
 
-        private:
-            ~RefCounted() { }
+    private:
+        ~RefCounted() { }
 
-            wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted)
-        };
+        wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted)
+    };
     @endcode
 
     Notice that there should be no semicolon after this macro.
-*/
-#define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)     /* implementation is private */
-
-/**
-    This macro can be used around a function declaration to generate warnings
-    indicating that this function is deprecated (i.e. obsolete and planned to be
-    removed in the future) when it is used. Only Visual C++ 7 and higher and g++
-    compilers currently support this functionality.
-    Example of use:
-
-    @code
-    // old function, use wxString version instead
-        wxDEPRECATED( void wxGetSomething(char *buf, size_t len) );
 
-        // ...
-        wxString wxGetSomething();
-    @endcode
+    @header{wx/defs.h}
 */
-
+#define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)
 
 /**
     This macro is the same as the standard C99 @c va_copy for the compilers
-    which support it or its replacement for those that don't. It must be used to
-    preserve the value of a @c va_list object if you need to use it after
+    which support it or its replacement for those that don't. It must be used
+    to preserve the value of a @c va_list object if you need to use it after
     passing it to another function because it can be modified by the latter.
+
     As with @c va_start, each call to @c wxVaCopy must have a matching
     @c va_end.
-*/
-void wxVaCopy(va_list argptrDst, va_list argptrSrc);
 
-/**
-    This is a special version of wxDEPRECATED() macro which
-    only does something when the deprecated function is used from the code outside
-    wxWidgets itself but doesn't generate warnings when it is used from wxWidgets.
-    It is used with the virtual functions which are called by the library itself --
-    even if such function is deprecated the library still has to call it to ensure
-    that the existing code overriding it continues to work, but the use of this
-    macro ensures that a deprecation warning will be generated if this function is
-    used from the user code or, in case of Visual C++, even when it is simply
-    overridden.
+    @header{wx/defs.h}
 */
+void wxVaCopy(va_list argptrDst, va_list argptrSrc);
 
+//@}