# :stopdoc:
# This file is automatically generated by the WXRuby3 documentation 
# generator. Do not alter this file.
# :startdoc:


module Wx

  # Creates and returns an object of the given class, if the class has been registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
  # Include file: #include <wx/object.h>
  # @param className [String] 
  # @return [Wx::Object]
  def self.create_dynamic_object(className) end
  
  # This is the root class of many of the wxWidgets classes.
  # It declares a virtual destructor which ensures that destructors get called for all derived class objects where necessary.
  # {Wx::Object} is the hub of a dynamic object creation scheme, enabling a program to create instances of a class only knowing its string class name, and to query the class hierarchy.
  # The class contains optional debugging versions of <b>new</b> and <b>delete</b>, which can help trace memory allocation and deallocation problems.
  # {Wx::Object} can be used to implement reference counted objects, such as {Wx::Pen}, {Wx::Bitmap} and others (see this list). See {Wx::RefCounter} and Reference Counting for more info about reference counting.
  # === 
  # 
  # Category:  Runtime Type Information (RTTI)
  # @see Wx::ClassInfo
  # @see  Wx::Debugging
  # @see  Reference Counting
  # @see  wxObjectDataRef
  # @see  Wx::ObjectDataPtr<T> 
  # 
  # 
  class Object < ::Object
  
    # @overload initialize()
    #   Default ctor; initializes to NULL the internal reference data.
    #   @return [Object]
    # @overload initialize(other)
    #   Copy ctor.
    #   Sets the internal {Wx::Object::m_refData} pointer to point to the same instance of the {Wx::ObjectRefData}-derived class pointed by other and increments the refcount of {Wx::Object::m_refData}.
    #   @param other [Wx::Object] 
    #   @return [Object]
    def initialize(*args) end
    
    # Returns true if this object has the same data pointer as obj.
    # Notice that true is returned if the data pointers are NULL in both objects.
    # This function only does a shallow comparison, i.e. it doesn't compare the objects pointed to by the data pointers of these objects.
    # @see Reference Counting 
    # @param obj [Wx::Object] 
    # @return [true,false]
    def is_same_as(obj) end
    alias_method :same_as?, :is_same_as
    
    # Sets the {Wx::Object::m_refData} pointer.
    # 
    # @see Wx::Object#ref
    # @see  Wx::Object#un_ref
    # @see  Wx::Object#get_ref_data
    # @see  Wx::ObjectRefData 
    # @param data [Wx::ObjectRefData] 
    # @return [void]
    def set_ref_data(data) end
    alias_method :ref_data=, :set_ref_data
    
    # This is the same of {Wx::Object#alloc_exclusive} but this method is public.
    # @return [void]
    def un_share; end
    
  end # Object
  

end