]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/object.h
Added NSApplicationDelegate's openFiles for wxOSX-Cocoa.
[wxWidgets.git] / interface / wx / object.h
index f827d2445cfe0300b9d4d0a401a0ec0ef9d178ec..dbe8a5bfbadb4a39f07ac8d8513cc587cec2dff4 100644 (file)
@@ -3,17 +3,17 @@
 // Purpose:     interface of wxRefCounter
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Purpose:     interface of wxRefCounter
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /** @class wxObjectRefData
 
     This class is just a typedef to wxRefCounter and is used by wxObject.
 
 /////////////////////////////////////////////////////////////////////////////
 
 /** @class wxObjectRefData
 
     This class is just a typedef to wxRefCounter and is used by wxObject.
 
-    Derive classes from this to store your own data in wxObject derived 
+    Derive classes from this to store your own data in wxObject-derived
     classes. When retrieving information from a wxObject's reference data,
     you will need to cast to your own derived class.
     classes. When retrieving information from a wxObject's reference data,
     you will need to cast to your own derived class.
-    
+
     Below is an example illustrating how to store reference counted
     data in a class derived from wxObject including copy-on-write
     semantics.
     Below is an example illustrating how to store reference counted
     data in a class derived from wxObject including copy-on-write
     semantics.
@@ -42,7 +42,7 @@
         virtual wxObjectRefData *CreateRefData() const;
         virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
 
         virtual wxObjectRefData *CreateRefData() const;
         virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
 
-        DECLARE_DYNAMIC_CLASS(MyCar)
+        wxDECLARE_DYNAMIC_CLASS(MyCar)
     };
 
 
     };
 
 
@@ -83,7 +83,7 @@
 
 
     #define M_CARDATA ((MyCarRefData *)m_refData)
 
 
     #define M_CARDATA ((MyCarRefData *)m_refData)
-    IMPLEMENT_DYNAMIC_CLASS(MyCar,wxObject)
+    wxIMPLEMENT_DYNAMIC_CLASS(MyCar, wxObject);
 
     MyCar::MyCar( int price )
     {
 
     MyCar::MyCar( int price )
     {
@@ -91,7 +91,7 @@
         m_refData = new MyCarRefData();
         M_CARDATA->m_price = price;
     }
         m_refData = new MyCarRefData();
         M_CARDATA->m_price = price;
     }
-    
+
     wxObjectRefData *MyCar::CreateRefData() const
     {
         return new MyCarRefData;
     wxObjectRefData *MyCar::CreateRefData() const
     {
         return new MyCarRefData;
     {
         if (m_refData == car.m_refData)
             return true;
     {
         if (m_refData == car.m_refData)
             return true;
-        if (!m_refData || !car.m_refData) 
+        if (!m_refData || !car.m_refData)
             return false;
 
         // here we use the MyCarRefData::operator==() function.
             return false;
 
         // here we use the MyCarRefData::operator==() function.
     }
     @endcode
 
     }
     @endcode
 
-    
+
     @library{wxbase}
     @category{rtti}
 
     @library{wxbase}
     @category{rtti}
 
@@ -151,9 +151,9 @@ typedef wxRefCounter wxObjectRefData;
     interface and a counter. wxRefCounter can be easily used together
     with wxObjectDataPtr<T> to ensure that no calls to wxRefCounter::DecRef()
     are missed - thus avoiding memory leaks.
     interface and a counter. wxRefCounter can be easily used together
     with wxObjectDataPtr<T> to ensure that no calls to wxRefCounter::DecRef()
     are missed - thus avoiding memory leaks.
-    
+
     wxObjectRefData is a typedef to wxRefCounter and is used as the
     wxObjectRefData is a typedef to wxRefCounter and is used as the
-    built-in reference counted storage for wxObject derive classes.
+    built-in reference counted storage for wxObject-derived classes.
 
     @library{wxbase}
     @category{rtti}
 
     @library{wxbase}
     @category{rtti}
@@ -227,7 +227,7 @@ public:
     @library{wxbase}
     @category{rtti}
 
     @library{wxbase}
     @category{rtti}
 
-    @see wxClassInfo, @ref overview_debugging, @ref overview_refcount, 
+    @see wxClassInfo, @ref overview_debugging, @ref overview_refcount,
          wxObjectDataRef, wxObjectDataPtr<T>
 */
 class wxObject
          wxObjectDataRef, wxObjectDataPtr<T>
 */
 class wxObject
@@ -257,7 +257,7 @@ public:
 
     /**
         This virtual function is redefined for every class that requires run-time
 
     /**
         This virtual function is redefined for every class that requires run-time
-        type information, when using the ::DECLARE_CLASS macro (or similar).
+        type information, when using the ::wxDECLARE_CLASS macro (or similar).
     */
     virtual wxClassInfo* GetClassInfo() const;
 
     */
     virtual wxClassInfo* GetClassInfo() const;
 
@@ -275,12 +275,12 @@ public:
         Example:
 
         @code
         Example:
 
         @code
-        bool tmp = obj->IsKindOf(CLASSINFO(wxFrame));
+        bool tmp = obj->IsKindOf(wxCLASSINFO(wxFrame));
         @endcode
 
         @param info
             A pointer to a class information object, which may be obtained
         @endcode
 
         @param info
             A pointer to a class information object, which may be obtained
-            by using the ::CLASSINFO macro.
+            by using the ::wxCLASSINFO macro.
 
         @return @true if the class represented by info is the same class as this
                  one or is derived from it.
 
         @return @true if the class represented by info is the same class as this
                  one or is derived from it.
@@ -357,10 +357,10 @@ protected:
         Ensure that this object's data is not shared with any other object.
 
         If we have no data, it is created using CreateRefData();
         Ensure that this object's data is not shared with any other object.
 
         If we have no data, it is created using CreateRefData();
-        if we have shared data (i.e. data with a reference count greater than 1), 
+        if we have shared data (i.e. data with a reference count greater than 1),
         it is copied using CloneRefData(); otherwise nothing is done (the data
         is already present and is not shared by other object instances).
         it is copied using CloneRefData(); otherwise nothing is done (the data
         is already present and is not shared by other object instances).
-        
+
         If you use this function you should make sure that you override the
         CreateRefData() and CloneRefData() functions in your class otherwise
         an assertion will fail at runtime.
         If you use this function you should make sure that you override the
         CreateRefData() and CloneRefData() functions in your class otherwise
         an assertion will fail at runtime.
@@ -370,7 +370,7 @@ protected:
     /**
         Creates a new instance of the wxObjectRefData-derived class specific to
         this object and returns it.
     /**
         Creates a new instance of the wxObjectRefData-derived class specific to
         this object and returns it.
-        
+
         This is usually implemented as a one-line call:
         @code
         wxObjectRefData *MyObject::CreateRefData() const
         This is usually implemented as a one-line call:
         @code
         wxObjectRefData *MyObject::CreateRefData() const
@@ -384,7 +384,7 @@ protected:
     /**
         Creates a new instance of the wxObjectRefData-derived class specific to
         this object and initializes it copying @a data.
     /**
         Creates a new instance of the wxObjectRefData-derived class specific to
         this object and initializes it copying @a data.
-        
+
         This is usually implemented as a one-line call:
         @code
         wxObjectRefData *MyObject::CloneRefData(const wxObjectRefData *data) const
         This is usually implemented as a one-line call:
         @code
         wxObjectRefData *MyObject::CloneRefData(const wxObjectRefData *data) const
@@ -412,8 +412,8 @@ protected:
     This class stores meta-information about classes.
 
     Instances of this class are not generally defined directly by an application,
     This class stores meta-information about classes.
 
     Instances of this class are not generally defined directly by an application,
-    but indirectly through use of macros such as ::DECLARE_DYNAMIC_CLASS and
-    ::IMPLEMENT_DYNAMIC_CLASS.
+    but indirectly through use of macros such as ::wxDECLARE_DYNAMIC_CLASS and
+    ::wxIMPLEMENT_DYNAMIC_CLASS.
 
     @library{wxbase}
     @category{rtti}
 
     @library{wxbase}
     @category{rtti}
@@ -505,10 +505,10 @@ public:
     public:
         MyCarRefData( int price = 0 ) : m_price(price) { }
         MyCarRefData( const MyCarRefData& data ) : m_price(data.m_price) { }
     public:
         MyCarRefData( int price = 0 ) : m_price(price) { }
         MyCarRefData( const MyCarRefData& data ) : m_price(data.m_price) { }
-        
+
         void SetPrice( int price )  { m_price = price; }
         int GetPrice() const        { return m_price; }
         void SetPrice( int price )  { m_price = price; }
         int GetPrice() const        { return m_price; }
-        
+
     protected:
         int m_price;
     };
     protected:
         int m_price;
     };
@@ -536,7 +536,7 @@ public:
             if (m_data.get() == other.m_data.get())
                 return true; // this instance and the 'other' one share the
                              // same MyCarRefData data...
             if (m_data.get() == other.m_data.get())
                 return true; // this instance and the 'other' one share the
                              // same MyCarRefData data...
-            
+
             return (m_data.GetPrice() == other.m_data.GetPrice());
         }
 
             return (m_data.GetPrice() == other.m_data.GetPrice());
         }
 
@@ -545,7 +545,7 @@ public:
             // make sure changes to this class do not affect other instances
             // currently sharing our same refcounted data:
             UnShare();
             // make sure changes to this class do not affect other instances
             // currently sharing our same refcounted data:
             UnShare();
-           
+
             m_data->SetPrice( price );
         }
 
             m_data->SetPrice( price );
         }
 
@@ -655,21 +655,12 @@ public:
 
     @header{wx/object.h}
 */
 
     @header{wx/object.h}
 */
-#define CLASSINFO( className )
-
-/**
-    Used inside a class declaration to declare that the class should be made
-    known to the class hierarchy, but objects of this class cannot be created
-    dynamically. The same as DECLARE_ABSTRACT_CLASS().
-
-    @header{wx/object.h}
-*/
-#define DECLARE_CLASS( className )
+#define wxCLASSINFO( className )
 
 /**
     Used inside a class declaration to declare that the class should be
     made known to the class hierarchy, but objects of this class cannot be created
 
 /**
     Used inside a class declaration to declare that the class should be
     made known to the class hierarchy, but objects of this class cannot be created
-    dynamically. The same as DECLARE_CLASS().
+    dynamically.
 
     @header{wx/object.h}
 
 
     @header{wx/object.h}
 
@@ -678,7 +669,7 @@ public:
     @code
     class wxCommand: public wxObject
     {
     @code
     class wxCommand: public wxObject
     {
-        DECLARE_ABSTRACT_CLASS(wxCommand)
+        wxDECLARE_ABSTRACT_CLASS(wxCommand);
 
     private:
         ...
 
     private:
         ...
@@ -687,14 +678,14 @@ public:
     };
     @endcode
 */
     };
     @endcode
 */
-#define DECLARE_ABSTRACT_CLASS( className )
+#define wxDECLARE_ABSTRACT_CLASS( className )
 
 /**
     Used inside a class declaration to make the class known to wxWidgets RTTI
     system and also declare that the objects of this class should be
     dynamically creatable from run-time type information. Notice that this
     implies that the class should have a default constructor, if this is not
 
 /**
     Used inside a class declaration to make the class known to wxWidgets RTTI
     system and also declare that the objects of this class should be
     dynamically creatable from run-time type information. Notice that this
     implies that the class should have a default constructor, if this is not
-    the case consider using DECLARE_CLASS().
+    the case consider using wxDECLARE_ABSTRACT_CLASS().
 
     @header{wx/object.h}
 
 
     @header{wx/object.h}
 
@@ -703,7 +694,7 @@ public:
     @code
     class wxFrame: public wxWindow
     {
     @code
     class wxFrame: public wxWindow
     {
-    DECLARE_DYNAMIC_CLASS(wxFrame)
+        wxDECLARE_DYNAMIC_CLASS(wxFrame);
 
     private:
         const wxString& frameTitle;
 
     private:
         const wxString& frameTitle;
@@ -712,35 +703,29 @@ public:
     };
     @endcode
 */
     };
     @endcode
 */
-#define DECLARE_DYNAMIC_CLASS( className )
+#define wxDECLARE_DYNAMIC_CLASS( className )
 
 /**
 
 /**
-    Used in a C++ implementation file to complete the declaration of a class
-    that has run-time type information. The same as IMPLEMENT_ABSTRACT_CLASS().
-
-    @header{wx/object.h}
-*/
-#define IMPLEMENT_CLASS( className, baseClassName )
+    Used inside a class declaration to declare that the class should be made
+    known to the class hierarchy, but objects of this class cannot be created
+    dynamically.
 
 
-/**
-    Used in a C++ implementation file to complete the declaration of a class
-    that has run-time type information and two base classes. The same as
-    IMPLEMENT_ABSTRACT_CLASS2().
+    The same as wxDECLARE_ABSTRACT_CLASS().
 
     @header{wx/object.h}
 */
 
     @header{wx/object.h}
 */
-#define IMPLEMENT_CLASS2( className, baseClassName1, baseClassName2 )
+#define wxDECLARE_CLASS( className )
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
-    that has run-time type information. The same as IMPLEMENT_CLASS().
-
+    that has run-time type information.
+    
     @header{wx/object.h}
 
     Example:
 
     @code
     @header{wx/object.h}
 
     Example:
 
     @code
-    IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
+    wxIMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject);
 
     wxCommand::wxCommand(void)
     {
 
     wxCommand::wxCommand(void)
     {
@@ -748,16 +733,15 @@ public:
     }
     @endcode
 */
     }
     @endcode
 */
-#define IMPLEMENT_ABSTRACT_CLASS( className, baseClassName )
+#define wxIMPLEMENT_ABSTRACT_CLASS( className, baseClassName )
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
-    that has run-time type information and two base classes. The same as
-    IMPLEMENT_CLASS2().
+    that has run-time type information and two base classes. 
 
     @header{wx/object.h}
 */
 
     @header{wx/object.h}
 */
-#define IMPLEMENT_ABSTRACT_CLASS2( className, baseClassName1, baseClassName2 )
+#define wxIMPLEMENT_ABSTRACT_CLASS2( className, baseClassName1, baseClassName2 )
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
@@ -769,7 +753,7 @@ public:
     Example:
 
     @code
     Example:
 
     @code
-    IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
+    wxIMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow);
 
     wxFrame::wxFrame(void)
     {
 
     wxFrame::wxFrame(void)
     {
@@ -777,7 +761,7 @@ public:
     }
     @endcode
 */
     }
     @endcode
 */
-#define IMPLEMENT_DYNAMIC_CLASS( className, baseClassName )
+#define wxIMPLEMENT_DYNAMIC_CLASS( className, baseClassName )
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
 
 /**
     Used in a C++ implementation file to complete the declaration of a class
@@ -786,7 +770,25 @@ public:
 
     @header{wx/object.h}
 */
 
     @header{wx/object.h}
 */
-#define IMPLEMENT_DYNAMIC_CLASS2( className, baseClassName1, baseClassName2 )
+#define wxIMPLEMENT_DYNAMIC_CLASS2( className, baseClassName1, baseClassName2 )
+
+/**
+    Used in a C++ implementation file to complete the declaration of a class
+    that has run-time type information, and whose instances can be created
+    dynamically. The same as wxIMPLEMENT_DYNAMIC_CLASS().
+
+    @header{wx/object.h}
+*/
+#define wxIMPLEMENT_CLASS( className, baseClassName )
+
+/**
+    Used in a C++ implementation file to complete the declaration of a class
+    that has run-time type information and two base classes, and whose instances 
+    can be created dynamically. The same as wxIMPLEMENT_DYNAMIC_CLASS2().
+
+    @header{wx/object.h}
+*/
+#define wxIMPLEMENT_CLASS2( className, baseClassName1, baseClassName2 )
 
 /**
     Same as @c const_cast<T>(x) if the compiler supports const cast or @c (T)x for
 
 /**
     Same as @c const_cast<T>(x) if the compiler supports const cast or @c (T)x for