=== PyGTK 2.5.2 ===
2005-01-10  Johan Dahlin  <johan@gnome.org>

	* autogen.sh: Check for automake-1.9 aswell, fixes 162396 
	(Raphael Kubo da Costa)

2005-01-10  Johan Dahlin  <johan@gnome.org>

	* .cvsignore:
	* Makefile.am:
	* configure.in:
	* gtk/Makefile.am:
	* pygtk-2.0.pc.in:
	* setup.py:
	* tests/common.py:
	* tests/testhelpermodule.c: Make the build of
	atk, pango and gtk conditional. Fixes bug #74144.

2005-01-10  Johan Dahlin  <johan@gnome.org>

	* tests/Makefile.am:
	* tests/common.py:
	* tests/runtests.py:
	* tests/test_thread.py: Make testsuite work and do things
	the way they were supposed to be done from the beginning.

2005-01-10  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* gtk/gtk.override
	(_wrap_GtkCellLayout__proxy_do_set_cell_data_func): Implement
	proxy function for virtual 'set_cell_data_func' of interface
	GtkCellLayout.

2005-01-09  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* gobject/pygtype.c (pyg_value_from_pyobject): Handle conversion
	of python sequence to G_TYPE_VALUE_ARRAY GValue.
	(pyg_param_gvalue_from_pyobject): idem.
	Patch by jylefort@brutele.be; Fixes #160452.

	* gtk/gdk.override (_wrap_gdk_pixmap_colormap_create_from_xpm):
	Accept GdkDrawable instead of GdkWindow as first argument. Fixes
	#159282.

2005-01-09  Tim Evans  <gjc@gnome.org>

	* gtk/gtk.defs (gtk_get_current_event): Add (caller-owns-return #t).

	* gtk/gtk.override (_wrap_gtk_get_current_event_state): Impl.

	Reviewed by Gustavo Carneiro.  Fixes #159397.

2005-01-09  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* gobject/pygtype.c (pyg_value_from_pyobject): Be consistent about
	not raising an exception on error return.
	Patch by jylefort@brutele.be, fixes #160595.

	* tests/Makefile.am (tests): Add test_subprocess.py.

	* tests/test_subprocess.py: Unit test for gobject.spawn_async and
	gobject.child_watch_add.

	* gobject/gobjectmodule.c (pyg_spawn_async): Add wrapper for
	g_spawn_async_with_pipes.
	(pyg_child_watch_add): Add wrapper for g_child_watch_add_full.

	* gobject/pygobject.h, gobject/pygobject-private.h: Define
	pyg_threads_enabled as PyEval_ThreadsInitialized() on Python 2.4,
	so that it is no longer required to call gobject.threads_init on
	that platform.  Also define pyg_begin|end_allow_threads as
	Py_BEGIN|END_ALLOW_THREADS, since these functions are rarely
	invoked, thus represent a minimal overhead.

	* gobject/gobjectmodule.c (pyg_type_register): Return the type
	being registered, to make gobject.type_register usable as Python
	2.4 @decorator.

	* codegen/codegen.py (Wrapper.write_constructor): Move writing of
	pygobject_no_constuctor to the new methods
	write_default_constructor (when no constructor is declared in the
	.defs) and write_noconstructor (when a constructor is declared but
	could not be generated).
	(GObjectWrapper.write_default_constructor): Override to return
	'0'.  This makes the constructor for GObjects become
	GObject.__init__ by default, unless there is a constructor
	function in the .defs and it could not be generated for some
	reason.

	* gtk/pygtkcellrenderer.c (pygtk_generic_cell_renderer_new):
	Deprecate GtkGenericCellRenderer, since all virtual methods of
	GtkCellRenderer are now supported.

	* gtk/gtk.override (_wrap_GtkCellRenderer__proxy_do_get_size):
	Override, implementation copied from PyGtkGenericCellRenderer,
	with minor adjustments/fixes.

2005-01-09  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* gobject/gobjectmodule.c (pyg_type_register): Look for
	GInterface's among tb_bases and register implementation support
	for them.
	(pyg_register_interface_info): Add.  Registers a GInterfaceInfo*
	containing python proxy implementation with a GInterface GType.

	* gobject/pygobject.h (pyg_register_interface_info): Add.

	* gtk/gtk-types.defs (Editable): Add (vtable "GtkEditableClass"),
	because the GtkEditable vtable structure name is GtkEditableClass
	instead of GtkEditableIface.

	* codegen/definitions.py (InterfaceDef.__init__): Add/parse vtable
	attribute, to contain the C structure name of the virtual table of
	an interface.  If not given, the vtable name defaults to (c_name +
	"Iface").  Add attribute interface_info, to hold the
	GInterfaceInfo variable for the interface.

	* codegen/reversewrapper.py (GEnumReturn.write_conversion): Add
	missing code=None parameter.
	(GFlagsReturn.write_conversion): idem.

	* codegen/codegen.py: Add global iproxies_coverage to track
	coverage statistics of interface proxies.
	(Wrapper.write_methods): Split out writing virtual method
	accessors to a separate method (write_virtual_accessors).
	(GInterfaceWrapper.write_virtual_accessors): Override to disable
	writing virtual accessors for interfaces.
	(GInterfaceWrapper.write_virtuals): Override to generate interface
	virtuals, interface_init function, and interface_info structure.
	(write_registers): Call pyg_register_interface_info for interfaces
	with some implementation support.

	* gtk/gtk.defs: Add (define-virtual ...) declarations for all
	interface virtual methods in gtk.

	Fixes #154974: Interface implementation support.

2005-01-09  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* codegen/reversewrapper.py (GBoxedParam.convert_c2py): When the C
	type begins with const, force python wrapper to create a copy of
	the boxed value, and typecast to avoid const warning.

	* codegen/codegen.py (Wrapper.write_virtuals): In the generated
	class_init function, don't declare the variable 'klass' if it is
	not needed.

2005-01-08  Adam Hooper  <adamh@cvs.gnome.org>

	* tests/test_actiongroup.py:

	Add test script for bug #162874.

2005-01-08  Adam Hooper   <adamh@cvs.gnome.org>

	reviewed by: Johan Dahlin <johan@gnome.org>

	* gtk/gtk.override: Py_DECREF action in 
	gtk_action_group_add_*actions. This should disconnect all the
	groups from the callbacks when destroyed. Fixes bug 162874

2005-01-08  Johan Dahlin  <johan@gnome.org>

	* Makefile.am: Add pygtk_postinstall.py
	* docs/random/missing-symbols: Updated
	* gtk/__init__.py: Deprecate gtk.idle_add and friends.
	* gtk/gtk.defs:	Merge in 2.6 api, for GtkLabel functions, 
	thanks to Gian Mario Tagliaretti, fixes bug #163296
	* tests/test_thread.py: Don't use gtk.idle_add

2005-01-08  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* codegen/reversewrapper.py (GFlagsReturn, GFlagsParam): Add type
	handlers for GFlags in reverse wrappers.
	(GtkTreePathParam): Add type handler for GtkTreePath* param.

2005-01-08  Gustavo J. A. M. Carneiro  <gjc@gnome.org>

	* gtk/gtk.override: Declare PyGdkDevice_Type, now needed for some
	virtual method.

	* gtk/gtk.defs: Add a bunch of virtual method declarations for all
	non-deprecated gtk widgets.

	* gobject/pygobject.h: Add pyg_register_class_init to the API
	vtable and as macro, and PyGClassInitFunc typedef.

	* gobject/gobjectmodule.c (initgobject): Create
	pygobject_class_init_key, a GQuark that indentifiers the
	class_init data for a GType class.
	(pyg_register_class_init): Add, registers a class intialization
	function of type "int (*PyGClassInitFunc) (gpointer gclass,
	PyTypeObject *pyclass);"
	(pyg_run_class_init): Add, runs a stack of class initialization
	functions for a newly registered GObject class.
	(pyg_type_register): Call pyg_run_class_init right after the type
	is registered.
	Add pyg_register_class_init to pygobject_api_functions.

	* codegen/scanvirtuals.py: An utility script to scan for virtual
	methods in header files.  At the moment it is not very intelligent
	and doesn't distinguish between virtual methods and interface
	definitions.

	* codegen/defsparser.py (DefsParser.__init__): Initialize
	attribute 'virtuals', to hold list of object's virtual methods.
	(DefsParser.define_virtual): Adds a new virtual method.
	(DefsParser.find_virtuals): Returns list of virtual methods of an
	object.

	* codegen/definitions.py (ObjectDef.__init__): Add a
	class_init_func member variable.  Rename class MethodDef to
	MethodDefBase, subclass MethodDefBase as MethodDef, move code that
	checks for presence of 'c_name' from MethodDefBase into MethodDef.
	(MethodDefBase.write_defs): Rename to _write_defs, and don't write
	the initial "(define-method ...".
	(MethodDef.write_defs): Write the "(define-method ..." here, then
	call _write_defs to write the remaining.
	(VirtualDef): New class to information of an object's virtual
	method.  It inherits from MethodBaseDef.

	* codegen/codegen.py: Add class Coverage, to track and display
	coverage statistics.  Add globals functions_coverage,
	methods_coverage, vproxies_coverage, and vaccessors_coverage.
	(Wrapper.virtual_accessor_tmpl): Add template for virtual method
	"accessor", which is a classmethod that calls a GObject virtual
	method for GType corresponding to the class of the method.  This
	is used in virtual method implementations for chaining to parent
	classes.
	(Wrapper.write_class): Call self.write_virtuals() in the end, to
	write virtual method proxies.
	(Wrapper.write_function_wrapper): Don't overwrite
	subsdict['cname'] if it already has a value, since we need to pass
	a different function name when generating virtual method
	accessors.
	(Wrapper.write_methods): Update coverage statistics in
	methods_coverage.
	(Wrapper.write_methods): Generate virtual metho accessor
	functions, as classmethods.
	(Wrapper.write_virtuals): Generate virtual method proxies using
	the reverse wrapper generator.  Also generates a class_init
	function to register the virtual proxies with the object class,
	but only for those virtuals that appear to be actually implemented
	in python code to avoid calling into python code for nothing.
	(Wrapper.write_functions): Update coverage statistics in
	functions_coverage.
	(write_registers): Generate code to call pyg_register_class_init
	if the object has a class init function.
	(main): Print all coverage statistics at the end of code generation.

	* codegen/argtypes.py (ArgMatcher.register_reverse)
	(ArgMatcher.register_reverse_ret, ArgMatcher.get_reverse)
	(ArgMatcher.get_reverse_ret): New APIs to register and lookup
	reverse wrappers type handlers.

	* codegen/Makefile.am (codegen_PYTHON): Add reversewrapper.py.

	* codegen/reversewrapper.py: New code to generate 'reverse
	wrappers', i.e. wrappers that are called from C, call into Python,
	and then return the python return value back to C.

	Fixes #145314: Overriding GTK+ virtual methods.

2004-12-26  John Finlay  <finlay@moeraki.com>

	* gtk/gdk.override (_wrap_gdk_event_tp_setattr): Fix garbled code
	and allow message_type to be set. Fixes #162292.
	(Raphael Kubo da Costa)

2004-12-23  John Finlay  <finlay@moeraki.com>

	* gtk/gdk.defs (render_to_drawable, render_to_drawable_alpha): Add
	drprecation warnings. Fixes #162097 (Steve Chaplin)

	* gtk/gtk.override (_wrap_gtk_dialog_set_alternative_button_order):
	Implement

2004-12-23  Johan Dahlin  <johan@gnome.org>

	* gtk/__init__.py: Improve deprecation warnings, to display correct
	lines (stacklevel should 2, not 1 which is default)

2004-12-23  Johan Dahlin  <johan@gnome.org>

	* configure.in: Post release version bump