diff options
Diffstat (limited to 'ChangeLog.pre-2-0')
-rw-r--r-- | ChangeLog.pre-2-0 | 6521 |
1 files changed, 6521 insertions, 0 deletions
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 new file mode 100644 index 00000000..fe01f992 --- /dev/null +++ b/ChangeLog.pre-2-0 @@ -0,0 +1,6521 @@ +2003-09-01 James Henstridge <james@daa.com.au> + + * configure.in: increment version number. + + * NEWS: add news items. + +2003-08-31 James Henstridge <james@daa.com.au> + + * gtk/gtktreeview.override (pygtk_cell_data_func_marshal): get rid + of the last argument in the cunote->data==NULL case. + PyEval_CallFunction() was ignoring it anyway. Fixes bug #121100. + +2003-08-26 James Henstridge <james@daa.com.au> + + * PKG-INFO.in (Classifier): add PKG-INFO file for submission to + Python package index. + +2003-08-25 John Finlay <finlay@moeraki.com> + + * gtk/gtktextview.override + (_wrap_gtk_text_view_set_border_window_size): Add missing break to + switch (bug #120669). Patch by Doug Quale. + + * gtk/gdk.override (_wrap_gdk_pixbuf_loader_write) Allow count to + override buf_len if in range 0 to buf_len (bug #120680). + +2003-08-24 James Henstridge <james@daa.com.au> + + * NEWS: add news items. + + * configure.in: update version number. + + * gtk/gtktreeview.override (_wrap_gtk_tree_store_new): Fix typo + found by John Finlay (bug #120517). + + * gtk/gtk.defs (pack_start_defaults): mark deprecated in favour of + pack_start. Fixes bug #118715. + (pack_end_defaults): similar here. + (attach_defaults): similar here. + + * gtk/libglade.override (_wrap_glade_set_custom_handler): wrap + glade_set_custom_handler in a more direct way. Implementation + based on the one in bug #119138. + (_wrap_glade_set_custom_widget_callbacks): deprecate this + function, and make it coexist better with the new one. + +2003-08-15 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtktreeview.override (_wrap_gtk_list_store_remove): Move to + autogenerated, since it need to return a GtkTreeIter. + +2003-08-02 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_pixbuf__get_pixel_array): fix up + order of dimensions in pixel array (bug #118839). + + * atk.override (NO_IMPORT_PYGOBJECT): define NO_IMPORT_PYGOBJECT + to get rid of multiple definitions of symbols. Patch from Naofumi + Yasufuku <naofumi@yasufuku.net> (bug #118835). + + * Makefile.am, gtk/Makefile.am (common_ldflags): switch the + -no-undefined switch back to being win32 only. In particular, + caused breakage on OS X. + +2003-07-31 James Henstridge <james@daa.com.au> + + * NEWS: add some news items. + + * configure.in: increment version number. + + * pygobject.c (pygobject_handler_is_connected): add wrapper (from + bug #118676). + + * pygtype.c (pyg_object_descr_doc_get): add a call to + PyType_Ready() to make sure the type is initialised (bug #118699). + +2003-07-26 James Henstridge <james@daa.com.au> + + * gtk/gdk.override: apply Elliot Lee's threading patch. Still + need to fix the remaining threading problems. + +2003-07-25 James Henstridge <james@daa.com.au> + + * gtk/gtktreeview.override + (_wrap_gtk_tree_view_get_dest_row_at_pos): add wrapper (bug #116133). + + * gtk/gtk.override (ignore): ignore some gtk_rc_* functions. + +2003-07-24 James Henstridge <james@daa.com.au> + + * gtk/pygtk.h (init_pygtk): same here. + + * pygobject.h (init_pygobject): convert fatal errors to normal + exceptions. + + * gtk/gtkglmodule.c (initgl): same here. + + * gtk/libglademodule.c (initglade): same here. + + * gtk/gtkmodule.c (init_gtk): same here. + + * atkmodule.c (initatk): same here. + + * pangomodule.c (initpango): same here. + + * gobjectmodule.c (initgobject): don't cause fatal errors if an + exception on init. + + * codegen/codegen.py (write_source): print an error message if it + isn't possible to import a particular name from the module. + + * autogen.sh (DIE): require Automake 1.7. + + * configure.in (AC_ARG_ENABLE): enable thread support by default. + +2003-07-23 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_dialog_add_buttons): add + add_buttons() method (bug #109620). + +2003-07-23 Ian McKellar <yakk@yakk.net> + + * gtk/Makefile.am: build fix + +2003-07-22 James Henstridge <james@daa.com.au> + + * codegen/scmexpr.py (parse): print a real error if we find a + string or identifier outside of a s-expression (bug #104311). + + * gtk/gtktreeview.override: wrappers for tree model drag + source/dest functions from Emmanuele Bassi (bug #116133). + + * gtk/gtktreeview.override (_wrap_gtk_tree_model_rows_reordered): + add wrapper (from Arjan J. Molenaar, bug #116005). + + * gtk/Makefile.am: fix a bug I introduced into the makefile + yesterday, and fix dependencies for gtk.c. + +2003-07-20 John Finlay <finlay@moeraki.com> + + * gtk/gdk.override (gdk_window_new) Wrap gdk_window_new as a + constructor for gtk.gdk.Window(). Fixes #117860. + +2003-07-20 James Henstridge <james@daa.com.au> + + * gtk/Makefile.am: same here. + + * Makefile.am: change *module.so to *.so. Seems to be the + preferred extension these days ... + +2003-07-12 John Finlay <finlay@moeraki.com> + + * pango.override (_wrap_PANGO_ASCENT, _wrap_PANGO_DESCENT) + (_wrap_PANGO_LBEARING, _wrap_PANGO_RBEARING) + Add these function overrides. Fixes #116920. + + * pango.defs (PIXELS, ASCENT, DESCENT, LBEARING, RBEARING) + Add defs for these. Fixes #116920. + + * pangomodule.c (initpango) Add pango.SCALE constant. Fixes #116920. + + * pango.override (PangoAttrIterator) Add this type and its methods. + +2003-07-11 John Finlay <finlay@moeraki.com> + + * pango.override (pypango_attr_new) Add start and end args to specify + start_index and end_index values. + (pypango_attr_copy) Specify copying start_index and end_index. + (_wrap_pango_attr_*_new) Allow the pango.Attr* functions to optionally + specify start_index and end_index values. Fixes #116776. + + * pango.override (pypango_attr_tp_getattr) + (pypango_attr_get_type) Add these to provide pango.Attribute type + information and access to attribute type specific data. Fixes #116691. + + * pango.defs (pango_color_parse) Make this a constructor for + pango.Color. Fixes #116662. + + * pango.override (_wrap_pango_color_parse) Add constructor wrapper. + Fixes #116662. + + * gtk/gtk.defs (gtk_tree_model_sort_convert_iter_to_child_iter) + Allow sort_iter to be NULL. Fixes #113097 + (gtk_tree_model_sort_convert_child_iter_to_iter) + Allow child_iter to be NULL. Fixes #113097 + + * gtk/gtktreeview.override + (_wrap_gtk_tree_model_sort_convert_iter_to_child_iter) + Allow the child_iter to be NULL and return the converted iter but + allow child_iter to be passed in for backward compatibility. + Fixes #113097 + (_wrap_gtk_tree_model_sort_convert_child_iter_to_iter) + Allow the sort_iter to be NULL and return the converted iter but + allow sort_iter to be passed in for backward compatibility. + Fixes #113097 + +2003-07-03 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (GtkWindow.set_icon): allow passing None as the + icon (fixes bug #116072). + (GtkTreeViewColumn.set_widget): allow passing None for the column + header widget (fixes bug #115027). + + * gobjectmodule.c (pyg_error_check): change first block threads + instead of unblocking them here. (Looks like John forgot to check + this part in). + +2003-05-03 Naofumi Yasufuku <naofumi@yasufuku.net> + + Bug #110619: + + * dsextras.py (InstallLib.prepare): Fixed self.prefix + initialization for win32. + (BuildExt.init_extra_compile_args, BuildExt.build_extensions) + (BuildExt.build_extension): On win32, add MinGW GCC option for + MSVC compatible struct packing (gcc2: -fnative-struct, gcc3: + -mms-bitfields). + (BuildExt.modify_compiler, BuildExt.build_extensions): On win32, + remove '-static' linker option to prevent MinGW ld from trying to + link with MSVC import libraries. + + * setup.py: Changed list_files('codegen/*.py') to + list_files(os.path.join('codegen', '*.py')) for win32. + Fixed pygtk.h installation directory. + +2003-07-02 James Henstridge <james@daa.com.au> + + * dsextras.py (pkgc_version_check): remove "self.", fixing bug + 111002 (pointed out by Seth Nickell). + +2003-07-01 John Finlay <finlay@moeraki.com> + + * gtk/gtk.override (_wrap_gtk_button_box_get_child_size) + (_wrap_gtk_button_box_get_child_ipadding): Add deprecation warnings. + Fixes #110663. + + * gtk/gdk.override (_wrap_gdk_pixbuf_animation_get_iter) + (_wrap_gdk_pixbuf_animation_iter_advance): Add methods. Fixes #114616. + + * gtk/gdk.defs (gdk_pixmap_create_from_data): Allow NULL window arg. + Fixes #114661. + + * gtk/gdk.defs (gdk_rectangle_new): Add GdkRectangle constructor. + Partial fix for #114743. + + * gtk/gdk.override (_wrap_gdk_rectangle_union) + (_wrap_gdk_rectangle_intersect): Add keyword args and allow 4-tuple as + rectangle spec. Fixes #114743. + + * gtk/gdk.override (_wrap_gdk_window_get_frame_extents): Return a + GdkRectangle. Fixes #114817. + + * gtk/gdk.override (gdk_window_get_decorations): Add method. + Fixes #114821. + + * gtk/gdk.defs (gdk_window_shape_combine_mask): shape_mask can be NULL. + Fixes #114952. + + * gtk/gdk.override (_wrap_gdk_window_get_toplevels) + (_wrap_gdk_list_visuals): Add functions. Fixes #115046. + + * gtk/gtktextview.override (_wrap_gtk_text_buffer_set_text) + (_wrap_gtk_text_buffer_insert) + (_wrap_gtk_text_buffer_insert_at_cursor) + (_wrap_gtk_text_buffer_insert_interactive) + (_wrap_gtk_text_buffer_insert_interactive_at_cursor): + Raise a ValueError exception if specified length greater than text + length. Fixes #115154. + + * gtk/gtk.override (_wrap_gtk_accelerator_parse): Add function. + Fixes #115191. + + * gtk/gtk.override (_wrap_gtk_accel_map_lookup_entry): Add function. + Fixes #115194. + + * gtk/gtk.override (_wrap_gtk_accel_map_load_fd) + (_wrap_gtk_accel_map_save_fd): Allow fd arg to be a Python file object. + Fixes #115198. + + * gtk/gtk.override (_wrap_gtk_color_selection_palette_from_string) + (_wrap_gtk_color_selection_palette_to_string): Add first and fix + second. Fixes #115206. + + * gtk/gdk.defs (keyboard_ungrab) (rgb_get_colormap) (rgb_get_cmap): + Add first two defs and add deprecation to last def. Fixes #115502. + +2003-06-30 John Finlay <finlay@moeraki.com> + + * gobjectmodule.c (pyg_error_check) Replace first pyg_unblock_threads + with pyg_block_threads. Fixes #116284. + +2003-06-30 James Henstridge <james@daa.com.au> + + * gtk/pygtkcellrenderer.c: same here. + + * gtk/pygtktreemodel.c: don't explicitly import pygobject.h, so + that it gets included correctly by pygtk-private.h. This should + fix the Mac OS X build issues. + +2003-06-27 John Finlay <finlay@moeraki.com> + + * gtk/gdk.defs (gdk_draw_layout_with_colors): Add deprecation warning. + Fixes 113954. + + * gtk/gdk.defs (pixmap_new): Fix typo. Fixes #114659. + + * gtk/gdk.override (_wrap_gdk_draw_layout): Add optional args + background and foreground (GdkColor) default to NULL. Fixes 113954. + +2003-06-26 James Henstridge <james@daa.com.au> + + * (lots of stuff): add copyright notices, and update to LGPL 2.1. + +2003-06-23 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * codegen/defsparser.py (DefsParser.ifdef): for some reason, the + list of arguments received now includes an extra empty string at + the beginning, so I corrected the indexes. + +2003-06-18 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_drawable__get_handle): fix bug + 114619 (the #define we were using was private). + +2003-06-12 Joe Shaw <joe@ximian.com> + + * gtk/gdk.override (_wrap_gdk_pixbuf_loader_write): Fix an invalid + python format string. + +2003-06-06 Johan Dahlin <jdahlin@async.com.br> + + * gobjectmodule.c (get_handler_priority): Fix bogus strcmp. Thanks to + John Ehresman for spotting this. Fixes #110489 + +2003-06-05 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.override (_wrap_gdk_colormap_alloc_color): Allow + allocating a color using an unallocated gdk.Color. Patch by John + Finlay, fixes #113858 + + * gtk/gtk.defs (iter_children): Allow null for parent. Fixes #113577 + + * gtk/libglade.defs (set_custom_widget_callbacks): Added + + * gtk/libglade.override (_wrap_glade_set_custom_widget_callbacks) + (_wrap_glade_set_custom_widget_callbacks): Impl. Patch by Ross + Burton. Fixes #113271 + + * gtk/gdk.override (_wrap_gdk_pixbuf_loader_write): Make last + argument optional. + (_wrap_gdk_pixbuf_loader_new_with_type): Make first argument + optional, so we can open without specifying a type. Fixes #114206. + (_wrap_gdk_gc_set_values, _wrap_gdk_gc_set_values): Impl. Patch by + John Finlay, fixes #114449 + + * gtk/gdk-types.defs (Drawable): Add xid and handle attributes. + + * gtk/gdk.override (_wrap_gdk_drawable__get_xid) + (_wrap_gdk_drawable__get_xid): Implement for X11 and win32. Patch + by jkluebs@luebsphoto.com, fixes #109105 + + * gtk/gtk.override (_wrap_gtk_adjustment_set_all): Undeprecate, + add keywords. Based upon patch by kohler@icir.org, fixes #105220 + + * gtk/gtk-extrafuncs.defs (set_all): Undeprecate. + + * gtk/gtk*.override: New files, splitted out from gtk.override + Fixes #103613 + + * gtk/Makefile.am (EXTRA_DIST): Add *.override here + + * codegen/override.py (Overrides.__parse_override): Added + "include" keyword, to be able to include files in override files. + Fixes #103611 + +2003-06-02 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_property_change): use short and long + instead of gint16 and gint32, so we don't break on 64 bit + platforms (Xlib uses those types, even though they don't match the + sizes). + If format==32 test if the type is ATOM or ATOM_PAIR, and if so + marshal the data into a (GdkAtom *) array instead of (long *). + Based on patch in bug 113860. + (_wrap_gdk_property_get): make similar changes to property_get. + (_wrap_gdk_property_get): the returned length is the length in + bytes, not number of elements. + +2003-05-30 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs (set_transient_for, set_default, set_focus): Accept + None as argument. Patch by John Finlay, fixes #113675 + + * gtk/gtk.override (_wrap_gtk_window_get_frame_dimensions): + Impl. Patch by John Finlay, fixes #113568 + (_wrap_gtk_widget_get_size_request): Impl. Patch by John Finlay, + fixes #113572 + (_wrap_gtk_window_set_icon_list, _wrap_gtk_window_get_icon_list) + (_wrap_gtk_window_set_default_icon_list) + (_wrap_gtk_window_get_default_icon_list): Impl. Patch by John + Finlay, fixes # 113576 + (pygtk_container_for_common_marshal, pygtk_container_for_common) + (_wrap_gtk_label_get): Implement, share code with + GtkContainer.foreach, patch by Rui Lopes, fixes #113597 + + * gtk/gtk.defs (convert_path_to_child_path): Rename first argument + to sorted_path. Thanks to John Finlay, fixes #113102 + + * gtk/gtk.override (_wrap_gtk_text_tag_table_add): Raise + ValueError if the tag exists. Patch by + John Finlay, fixes #112796 + (_wrap_gtk_text_view_set_border_window_size): Raise exceptions if + size is under 0 or a wrong type is specified. Patch by John + Finlay, fixes #112880 + (_wrap_gtk_text_tag_table_remove): Raise ValueError if the tag + doesn't exist. Patch by John Finlay, fixes #112797 + (_wrap_gtk_tooltips_data_get): Impl. Patch by John Finlay, fixes + #112952 + + * gtk/gdk.defs (set_icon_stock): Fix typo. Thanks to John + Finlay. fixes #113928 + + * gtk/gdk.override (_wrap_gdk_devices_list): Impl. Patch by John + Finlay, fixes #113919 + + * gtk/gtk.override (_wrap_gtk_text_buffer_set_text) + (_wrap_gtk_text_buffer_insert) + (_wrap_gtk_text_buffer_insert_at_cursor) + (_wrap_gtk_text_buffer_insert_interactive) + (_wrap_gtk_text_buffer_insert_interactive_at_cursor): + + * gtk/gdk.defs (gc_new): + + * gtk/gdk.override (_wrap_gdk_gc_new2): Backwards compatibility, + based on patch by Jonathan Blandford, fixes #113861 + +2003-05-28 Johan Dahlin <jdahlin@async.com.br> + + * codegen/defsparser.py (DefsParser.__init__): Make the third + argument optional. This broke distutils. + + * gobjectmodule.c, pygtype.c, gtk/gtk.override, + gtk/pygtkcellrenderer.c, pygtktreemodel.c: Remove unnecessary + calls to PyErr_Clear. It's not needed right after a + PyErr_Print. Thanks to Rui Lopes for spotting this. + +2003-05-28 James Henstridge <james@daa.com.au> + + * codegen/defsparser.py (IncludeParser.include): simplify. + + * codegen/scmexpr.py (parse): set up so that it takes a filename + as an argument. Also keep track of line numbers, so that more + useful error messages can be provided. + +2003-05-26 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * codegen/codegen.py (main): Parse -Dkey[=val] options. + + * codegen/defsparser.py (DefsParser.__init__): Receive an + aditional 'defines' parameter, with a dictionary of all + -Dkey[=val] command-line options. + (DefsParser.ifdef): Handle (ifdef 'FOO ... ) + +2003-05-26 James Henstridge <james@daa.com.au> + + * codegen/scmexpr.py (parse): convert to a generator to allow + incremental parsing of defs files. + +2003-05-23 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * codegen/defsparser.py (IncludeParser.include): Made + pygtk-codegen able to read from stdin, by specifying a single dash + (-) as file name. + +2003-05-07 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_radio_button_set_group, + _wrap_gtk_radio_button_set_group): Implement. Patch by John + Finlay, fixes #112054 and #112058. + (_wrap_gtk_ruler_get_range): Return a tuple of integers, not + doubles. Patch by John Finlay, fixes #111716. + (_wrap_gtk_image_get_pixmap, _wrap_gtk_image_get_image) + (_wrap_gtk_image_get_stock, _wrap_gtk_image_get) + (_wrap_gtk_image_get_pixbuf, _wrap_gtk_image_get_animation): + Implement. Patch by John Finlay, fixes #111400. + (_wrap_gtk_scrolled_window_get_policy): Implement. Patch by John + Finlay, fixes #112247. + (_wrap_gtk_text_buffer_get_iter_at_child_anchor): Implement, Patch + by John Finlay, fixes #112524. + + * gtk/gtk.defs (GtkImage.render_icon, set_image, + GtkStyle.render_icon): Allow None to be sent in. Patch by John + Finlay, fixes #111389 and #111416. + +2003-04-29 Johan Dahlin <jdahlin@async.com.br> + + * gtk/Makefile.am (pygtk_PYTHON): Install dsextras. + +2003-04-27 Johan Dahlin <jdahlin@async.com.br> + + * setup.py (py_modules): Install dsextras.py + +2003-04-12 Naofumi Yasufuku <naofumi@yasufuku.net> + + * pango.defs (pango_context_get_metrics): Allow language parameter + to be omitted to get the metrics for the entire font. + (pango_itemize): Allow cached_iter parameter to be omitted. + (pango_font_description_better_match): Allow old_match parameter + to be omitted to determine if new_match is a match at all. + (pango_font_get_metrics): Allow language parameter to be omitted + to get the metrics for the entire font. + (pango_layout_set_font_description): Allow 'None' desc parameter + to unset the current font description. + (pango_layout_set_tabs): Allow 'None' tabs parameter to reinstate + the default tabs. + (pango_language_matches): Changed to function. Allow 'None' + language parameter which matches nothing but '*'. + Fixes #109848 + +2003-03-24 James Henstridge <james@daa.com.au> + + * pygobject-private.h: add missing "extern" keyword (from Glyph's + patch). + +2003-03-23 James Henstridge <james@daa.com.au> + + * setup.py: increment version number. + + * NEWS: add news items. + + * configure.in (numpy check): fix up check for Numeric and + increment version number. + +2003-03-21 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_tree_store_new): + (_wrap_gtk_list_store_new): This two are constructors, not normal + function, therefor return -1 as error and 0 as success. + Also a big tab/trailing whitespace cleanup. (so the patch is a lot + larger than it should be) + +2003-03-19 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.defs (get_option): Added. + +2003-03-13 James Henstridge <james@daa.com.au> + + * gobjectmodule.c: add doc comments. + + * pygobject.c: add doc comments. + + * pygboxed.c: add doc comments. + +2003-03-12 James Henstridge <james@daa.com.au> + + * pygtype.c: add some documentation. + +2003-03-11 James Henstridge <james@daa.com.au> + + * gtk/gdk.defs (set_back_pixmap): allow passing None for the + pixmap argument. + + * gtk/gtk.override (_wrap_gtk_main_iteration): return boolean + (either Py_True or Py_False). + (_wrap_gtk_main_iteration_do): same here. + (_wrap_gtk_im_context_filter_keypress): and here. + (_wrap_gtk_text_attributes__get_strikethrough): and here. + (_wrap_gtk_text_attributes__get_draw_bg): and here. + + * gtk/gtk.override (_wrap_gtk_tree_model_tp_setitem): add a + setitem routine for GtkTreeStore and GtkListStore. + (_wrap_gtk_list_store_insert): add second argument to allow + setting the values in the row when creating it. + (_wrap_gtk_list_store_insert_before): same here. + (_wrap_gtk_list_store_insert_after): and here. + (_wrap_gtk_list_store_prepend): and here. + (_wrap_gtk_list_store_append): and here. + (_wrap_gtk_tree_store_insert): and here. + (_wrap_gtk_tree_store_insert_before): and here. + (_wrap_gtk_tree_store_insert_after): and here. + (_wrap_gtk_tree_store_prepend): and here. + (_wrap_gtk_tree_store_append): and here. + + * gtk/pygtk-private.h (_pygtk_tree_model_set_row): add prototype. + + * gtk/gtk-types.c (pygtk_tree_path_from_pyobject): support + converting a path string to a GtkTreePath. + (_pygtk_tree_model_set_row): new helper function to set a row from + a sequence. + +2003-03-08 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.defs (gdk_color_new): New placeholder function + (gc_new): Set as constructor for GdkGC + + * gtk/gdk.override (_wrap_gdk_color_tp_setattr) + (_wrap_gdk_color_new): Impl + +2003-03-06 James Henstridge <james@daa.com.au> + + * pygobject.c (pygobject_register_wrapper): the GObject should own + a ref to the wrapper. + (pygobject_new): get rid of the hasref code, and make sure that + the GObject owns a ref to the wrapper if we create it. + (pygobject_dealloc): get rid of the hasref code. If we get this + far, the wrapper is dead. + (pygobject_traverse): if the GObject's refcount == 1, then + traverse to self. + (pygobject_clear): clear self->obj and self->inst_dict. + (pygobject_register_class): set tp_clear() so that things actually + work. Without this, there was no tp_clear method for subclasses + of GObject. + + * pygobject.h: remove hasref member, hopefully not needed if + relying on cycle GC. + +2003-03-07 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs (gtk_label_new_with_mnemonic, gtk_label_new) + (render_icon): Allow some parameters to be NULL. + + * gtk/gtk.override (_wrap_gtk_stock_lookup) + (_wrap_gtk_stock_list_ids) + (_wrap_gtk_tree_view_insert_column_with_data_func): Impl. + (ignore-glob): Remove gtk_accelerator_* + + * examples/pygtk-demo/demos/stock_browser.py: Ported from C + +2003-03-04 Jon Trowbridge <trow@ximian.com> + + * gtk/gtkmodule.c (python_do_pending_calls): Block threads while + we make our Py* calls. This prevents a 'no current thread' error + if you try to kill a program by typing ctrl-c in the console it + was launched from. + + * pygobject.c (pygobject_dealloc): Unblock threads before + invalidating our closures, since this might trigger a destructor + that needs to execute python code. + (pygobject_clear): Ditto. + + * pygboxed.c (pyg_boxed_dealloc): Unblock threads before freeing + the boxed type, since the destructor may need to execute python + code. + (pyg_boxed_new): Block threads while we make our Py* calls. + (pyg_pointer_new): Block threads while we make our Py* calls. + + * gobjectmodule.c (pyg_object_set_property): We need to block + threads before our call to pygobject_new. + (pyg_object_get_property): Ditto. + +2003-03-02 Johan Dahlin <jdahlin@async.com.br> + + * gobjectmodule.c (pyg_io_add_watch): Fix function name in exception. + +2003-02-27 Johan Dahlin <jdahlin@async.com.br> + + * dsextras.py (getstatusoutput): Small typo. + + * setup.py: Cut the doclines, to make the windows installer happy + +2003-02-26 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.defs (invalidate_rect): Null is okay here. + Fixes #106295 (John Finlay). + + * gtk/gdk.override (_wrap_gdk_pixbuf_new_from_xpm_data): + Impl. Fixes #106292 (John Finlay) + + * pango.override (_wrap_pango_layout_set_text): Impl. Fixes + #106280 (John Finlay) + + * gtk/gtk.override: Added get implements for all TextAttribute + fields. Fixes #106279 (John Finlay). + + * gtk/gtk-types.defs (TextAttributes): Added fields. + + * setup.py, dsextras.py: Added win32 support and some + rearrangements. Largely based upon patch by Cedric Gustin. + + * gtk/gdk.defs (pointer_grab, pointer_ungrab, keyboard_grab) + (pointer_is_grabbed): Add. + + * gtk/gdk.defs: Add GDK_CURRENT_TIME as default value to all + functions that require a time argument + +2003-02-24 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * gtk/libglade.override (_wrap_glade_bindtextdomain): Raise + exception if bindtextdomain() returns NULL. + + * gtk/libglade.defs (textdomain): Wrap the textdomain() function. + +2003-02-14 James Henstridge <james@daa.com.au> + + * configure.in (export_dynamic): add guard around the + export_dynamic flag from GTK_LIBS. (fixes bug 105728). + +=== PyGTK 1.99.15 === + +2003-02-08 Johan Dahlin <jdahlin@async.com.br> + + * configure.in, setup.py: Upped version number + + * pygtk-2.0.pc.in (codegendir): Added. + + * setup.py: Added Numeric and gtkgl support (gtkgl untested). + + * dsextras.py: Updated. + + * gtk/libglade.override (connect_many): Add PyErr_Clear() + here. Since PyMapping_GetItemString will raise an AttributeError + if the handler can't be found. + +2003-01-31 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_draw_rgb_image): add implementation. + (_wrap_gdk_draw_rgb_32_image): add implementation. + (_wrap_gdk_draw_gray_image): add + (_wrap_gdk_draw_rgb_image, _wrap_gdk_draw_rgb_32_image): add xdith + and ydith optional arguments, providing the functionality of the + _dithalign variants. + +2003-01-30 Jon Trowbridge <trow@ximian.com> + + * gtk/gdk.override: Only call import_array if we HAVE_NUMPY. + +2003-01-30 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_pixbuf__get_pixel_array): add + wrapper that returns a NumPy array. + + * gtk/gdk-types.defs (Pixbuf): add a "pixel_array" member to + pixbuf object. + + * configure.in (enable_numpy): get rid of code detecting which + directory Numeric's arrayobject.h header is in. No point in + supporting ancient versions ... + +2003-01-30 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * gtk/gtk-types.defs (Layout): Wrap bin_window. + +2003-01-24 Johan Dahlin <jdahlin@async.com.br> + + * dsextras.py (InstallLib.add_template_option): Fix template bustage. + + * gtk/gtk.defs (set_from_image, set_from_file, set_from_pixbuf): + Allow NULL here too. This definitly fixes #103559 + +2003-01-23 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtkmodule.c (init_gtk): Added a timeout that calls + python_do_pending_calls every 100 ms. + (python_do_pending_calls): Call PyErr_CheckSignals, so Ctrl-C + works as expected inside of gtk_main(). Fixes #72333 + +2003-01-21 Johan Dahlin <jdahlin@async.com.br> + + * dsextras.py (Template.generate): Import codegen here instead, + needs to be fixed in the future though. + + * Makefile.am (EXTRA_DIST): Added dsextras.py + + * gobjectmodule.c: Add GMainContext bindings and complete the + GMainLoop bindings. Fixes #102362. + + * dsextras.py: Splitted out from setup.py. It should be reusable + for gnome-python and other extensions that uses pygtk. + Fixes #103615 + + * gtk/gtk.override (quit_handler_marshal): Added to here, was + generated before. This version handle threads better. Patch from + John Finlay, Fixes #103851. + +2003-01-20 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.override (_wrap_gdk_event_tp_getattr): Added correct + __members__ to all different kind of GdkEvent's. This fixes the + dir() output, also reported as #103979 + +2003-01-19 Johan Dahlin <jdahlin@async.com.br> + + * pygtk.py (_get_available_versions): Check if a directory is + empty before adding it to the path. Also added a few comments. + Fixes #103876 (Ross Burton). + +2003-01-18 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs (drag_source_set_icon, set_from_pixmap): Null is + okay here. Fixes #103559 (John Finlay) + + * gtk/gtk.defs (begins_tag, ends_tag, toggles_tag): Add default + values. Fixes #103443 (John Finlay) + + * gtk/gdk.defs (bitmap_create_from_data): Change data parameter + from const-gchar to const-guchar. Fixes #103616 (Eddie Kohler) + + * setup.py: use os.path.join in a few more places + + * pygobject-private.h: Add PyGMainLoop struct and type + + * gobjectmodule.c (_wrap_g_main_loop_new, _wrap_g_main_loop_quit) + (_wrap_g_main_loop_is_running, _wrap_g_main_loop_run): Added + GMainLoop wrapper. + (initgobject): Register wrapper in gobject.MainLoop + + * setup.py: Check for the python version + (Template.generate): Use codegen directly instead of os.system() + +2003-01-17 Jon Trowbridge <trow@ximian.com> + + * pygobject.c (pygobject_dealloc): In my fix for bug #102756 on + 2003-01-08, I should have used calls to pyg_unblock_threads()/ + pyg_block_threads() instead of directly calling the + Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS macros. The macros + don't update our local thread lock counts, causing problems in + cases where the finalization of one object triggers the + finalization of another. (When I say "problems", I of course mean + "horrible crashes".) + + * gtk/gtk-types.c (pygtk_style_helper_dealloc, + pygtk_style_helper_setitem, pygtk_tree_model_row_dealloc, + pygtk_tree_model_row_iter_dealloc): See above. + +2003-01-16 Johan Dahlin <jdahlin@async.com.br> + + * gtk/libglade.override (connect_many) Use PyObject_GetAttrString + as a fallback. Remove warning. + (_wrap_glade_xml_signal_autoconnect): Don't limit to PyDict_Type. + +2002-01-09 Joe Shaw <joe@ximian.com> + + * gtk/gtk.override (_wrap_gtk_icon_size_lookup): Wrap. The width + and height are returned as a tuple. + +2003-01-09 Joe Shaw <joe@ximian.com> + + * gtk/gtk.override (_wrap_gtk_file_selection_get_selections): + Added. Wraps the gtk_file_selection_get_selections() call which + has a gchar ** return type, so it wasn't being wrapped. + +2003-01-08 Johan Dahlin <jdahlin@async.com.br> + + * setup.py: Make building with threading work (again). + +2003-01-08 Jon Trowbridge <trow@ximian.com> + + * pygobject.c (pygobject_dealloc): Wrap + Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS around the call to + g_object_unref. We need to do this because the object finalizers + might trigger other code that has to acquire the interpreter lock, + causing a deadlock. Fixes #102756. + + * gtk/gtk-types.c (pygtk_style_helper_dealloc): Wrap the call to + g_object_unref in Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS. + This should let us avoid other instances of bug #102756. + (pygtk_style_helper_setitem): Ditto. + (pygtk_tree_model_row_dealloc): Ditto. + (pygtk_tree_model_row_iter_dealloc): Ditto. + + * gtk/gdk.override (pygdk_unblock_threads, pygdk_unblock_threads): + Restored David I Lehn's patch (#98380). His patch was fine --- + it just caused bug #102756 to emerge. + +2003-01-07 Johan Dahlin <jdahlin@async.com.br> + + * pygtk.py (_get_available_versions): Rewrite using glob.glob, + with python2.2 glob uses fnmatch.filter with is an optimized + version of what we did before. _get_available_versions is now + roughly 5 times faster. + + * gtk/gdk.override (pygdk_block_threads, pygdk_unblock_threads): + Reverted patch from David I Lehn (#98380) since it caused troubles + for other people. + + * gtk/gtk.defs (gtk_text_tag_new): Add default paramter. + + * pangomodule.c (initpango): Added SCALE_* constants, patch by + John Finlay, fixes #102731. + + * gtk/gtk.override (_wrap_gtk_text_buffer_create_tag): Modify to + accept keyword parameters, largely based upon patch by John + Finlay, fixes #102628 + + * gtk/gtk.defs (GtkTextBuffer.get_slice): default last parameter + to TRUE. #102607 + (GtkTextBuffer.get_text): ditto. #102607 + (GtkTextBuffer.create_mark): Default last param. to FALSE. #102627 + + * setup.py, MANIFEST.in: Added distutils support + + * Makefile.am (EXTRA_DIST): Added setup.py and MANIFEST.in here. + + * .cvsignore: Add build/dist/MANIFEST here + +2003-01-06 Jon Trowbridge <trow@ximian.com> + + * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): + pyg_unblock_threads was being called twice. + +2003-01-05 Johan Dahlin <jdahlin@async.com.br> + + * gtk/libglade.override: protect config.h by an ifdef. + +2003-01-01 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_text_buffer_insert_at_cursor) + (_wrap_gtk_text_buffer_insert_at_cursor) + (_wrap_gtk_text_buffer_insert_interactive) + (_wrap_gtk_text_buffer_insert_interactive_at_cursor): Wrap, so you + don't have to specify the length of the string. For + consistency. (It's not slower since Python does always store the + length inside the PyStringObject struct). Patch (mostly) by + John Finlay, fixes #102186. + (_wrap_gtk_text_buffer_get_selection_bounds): Remove unused + keyword argument and not up-to-date comment. + + * gtk/gtk.defs (GtkTreeView.scroll_to_cell): Add default values. + + * gtk/gtk.override (_wrap_gtk_tree_selection_get_selected): Check + the mode before calling gtk_tree_selection_get_selected, this + avoids an abort() in gtk+. + + * pygtk.py: Updated to fix #102180, so .require() can be called + twice and won't do anything the second time (eg, not raise an + error) based upon patch by warner-gnome.bugzilla@lothar.com + +2002-12-29 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs (set_cursor): Set default parameters. + +2002-12-28 Johan Dahlin <jdahlin@async.com.br> + + * gobjectmodule.c, gtk/gtk.override, gtk/pygtkcellrenderer.c, + gtk/pygtktreemodel: Improve threading support by adding + pyg_thread_block/unblock around all PyObject_Call* and + g_object_refs. + Based upon patch by Jon Trowbridge. Fixes #99102. + + * gtk/gdk-types.defs (ColorSpace): Add. + + * gtk/gdk.defs (GdkRectangle.intersect, GdkRectangle.union, + gdk.atom_intern): Add + + * gtk/gdk.override (_wrap_gdk_rectangle_intersect): Impl. + (_wrap_gdk_rectangle_union): Impl. (doesn't follow the GDK api to + 100%, but this is much nicer from a python point of view) + +2002-12-28 Jeremy Katz <katzj@redhat.com> + + * codegen/codegen.py + (GObjectWrapper.get_initial_constructor_substdict): + GtkInvisible is a toplevel like GtkWindow and needs to be handled + similarly for reference counting. + +2002-12-28 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs: Added -1 as default to second parameter, patch by + John Finlay, fixes #102083. + +2002-12-28 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_text_buffer_set_text): get rid of + len argument all together. The first argument knows its length. + +2002-12-27 James Henstridge <james@daa.com.au> + + * NEWS: add news items. + + * gtk/__init__.py: if True and False constants don't exist in + __builtins__, add them. This way I can rely on them existing. + Define gtk.TRUE and gtk.FALSE to True and False. + (input_add_full): add extra compatibility name. + + * configure.in: increment version number. + +2002-12-26 James Henstridge <james@daa.com.au> + + * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): this + should have been calling on_get_path(), rather than + on_get_tree_path(). + +2002-12-25 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (GtkStyle.copy): caller owns return. + (GtkRcStyle.copy): same. + (GtkIconSet.copy): same. + (GtkIconSource.copy): same. + (GtkSelectionData.copy): same. + (GtkStockItem.copy): same. + (GtkBorder.copy): same. + (GtkTextIter.copy): same. + (GtkTextAttributes.copy): same. + (GtkTreePath.copy): same. + (GtkTreeIter.copy): same. + (GtkRequisition.copy): same. + + * gtk/gtk.override (_wrap_gtk_layout_get_size): don't return NULL + if user asks to register zero stock items. + +2002-12-24 James Henstridge <james@daa.com.au> + + * pygobject.c (pygobject_init): add abstract type check here too. + (pygobject_init): make this code more similar to pyg_object_new, + so that it is easier to fix bugs in the future. + (pygobject_chain_from_overridden): check if + g_signal_get_invocation_hint() returns NULL. + + * gobjectmodule.c (pyg_object_new): handle case of no keyword + arguments. + (pyg_object_new): refuse to instantiate an abstract type. + +2002-12-23 James Henstridge <james@daa.com.au> + + * autogen.sh (AUTOMAKE): use automake-1.7 in preference to 1.6. + + * configure.in (GLIB_LIBS): remove -export-dynamic from flags. + +2002-12-22 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override + (_wrap_gtk_text_view_get_location): Impl, + patch from John Finlay, fixes 101714. + (_wrap_gtk_text_view_get_line_at_y): Impl, + patch from John Finlay, fixes 101716. + (_wrap_gtk_text_view_get_line_yrange): Impl, + patch from John Finlay, fixes 101720. + (_wrap_gtk_text_view_get_iter_at_location): Impl, + patch from John Finlay, fixes 101722. + + * examples/pygtk-demo/demos/editable_cells.py: New demo. + * examples/pygtk-demo/pygtk-demo.py: Rearrange code a bit. + * examples/pygtk-demo/demos/*.py: Clean up a bit. + + * gtk/gtk.override + (_wrap_gtk_tree_view_insert_column_with_attributes): If the first + argument (position) is -1, the column will be inserted at the end + of the list, there for the new position will be columns - 1. If + the columns isn't 1, it will be inserted at the requested + position. This makes this function work again. + + +2002-12-19 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gdk.override: Integrate patch by David I. Lehn, improves + threading support, fixes #98380. + +2002-12-18 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_text_buffer_get_selection_bounds): + Impl, based upon patch by John Finlay, fixes #101499. + (_wrap_gtk_text_view_get_visible_rect): Impl, patch by John + Finlay, fixes #101503. + (_wrap_gtk_tree_view_get_visible_rect): Impl, patch by John + Finlay, fixes #101505. + (_wrap_gtk_tree_view_column_cell_get_size): Impl. + +2002-12-17 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.defs (gtk_text_buffer_new): Add (default "NULL"), fixed + #101490 (John Finlay). + + * gtk/gtk.override: ignore gtk_text_view_new. + + * gtk/gtk.defs (gtk_text_view_new_with_buffer): Add null-ok. + Fixes #101489 (John Finlay). + +2002-12-11 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_tree_view_get_cursor): Make the + return value a bit more intelligent and only return what's requested. + (_wrap_gtk_tree_view_get_cursor): Another try, this time, don't + take any input arguments, always return a tuple with two items + (which could be None) + (_wrap_gtk_text_buffer_create_tag): Check if the tag exists before + inserting into the tag table. Fixes #100668. + +2002-12-10 Johan Dahlin <jdahlin@telia.com> + + * pango.defs (pango_tab_array_new): Add, and make constructor of + PangoTabArray. + +2002-12-08 Johan Dahlin <jdahlin@async.com.br> + + * gtk/__init__.py (threads_enter): point to gdk.threads_leave, not + gdk.threads_enter! Fixes #100623. Thanks Jon Trowbridge. + + * gtk/gdk.override (_wrap_gdk_event_get_axis): Don't raise an + exception when leaving this function, instead look in + _PyGdkEvent_methods. (which raises an exception if it's not found) + (_wrap_gdk_event_get_axis, _wrap_gdk_event_get_coords) + (_wrap_gdk_event_get_root_coords): Impl. + +2002-12-05 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_tree_selection_get_selected): + Impl. Fixes #100389. + +2002-12-05 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (create_pango_context): caller owns return. + (create_pango_layout): caller owns return. + +2002-12-04 Johan Dahlin <jdahlin@async.com.br> + + * pygtk.py (_get_available_versions): s/os.path.exists/os.path.isdir/ + + * gtk/gtk.override (_wrap_gtk_tree_store_set) + (_wrap_gtk_tree_store_new, _wrap_gtk_list_store_new) + (_wrap_gtk_list_store_set): Do an extra check for the number of + arguments. Fixes #100349 + + * pygtk-2.0.pc.in (Requires): Added gobject-2.0. Fixes #97727 + + * gtk/gtk.override (_wrap_gtk_tree_view_get_cursor): Impl. Fixes + #100077 (Dave Cook) + (_wrap_gtk_tree_model_iter_nth_child): Allow argument to be None, + fixes #99787. Thanks to Rob Melby for patch. + + * gtk/gdk.defs (keyval_name): add caller-owns-returns false, this + prevents the code generator from freeing the return value. Fixes + #100103 (Dave Cook) + + * gtk/gtk.override (_wrap_gtk_tree_view_get_cell_area) + (_wrap_gtk_tree_view_get_cell_area) + (_wrap_gtk_tree_view_get_background_area): Impl. Fixes #100301 (Dave Cook) + + * gtk/gtk.override (_wrap_gtk_tree_view_widget_to_tree_coords) + (_wrap_gtk_tree_view_tree_to_widget_coords): Impl. Fixes #100302 (Dave Cook) + +2002-12-02 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override (_wrap_gtk_tooltips__get_tips_data_list): Impl. + (_wrap_gtk_tooltips__get_tips_data_list): + +2002-11-28 Johan Dahlin <jdahlin@async.com.br> + + * pygtk.py (_get_available_versions): If the directory doesn't + exist skip it. If not, it breaks when doing os.listdir. + +2002-11-24 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_tree_model_tp_getitem): allow you to + get a row object from a TreeIter as model[iter]. + + * gtk/gtk-types.c (pygtk_tree_model_row_get_iter): allow getting + an iter from a treemodel row object. + + * gtk/gdk.override (_wrap_gdk_pixmap_create_from_xpm_d): fix up + ParseTuple call arguments (bug 99400). + + * gtk/gtk.defs (create_mark): allow None to be passed for + mark_name argument (bug 99391). + +2002-11-20 Joe Shaw <joe@ximian.com> + + * gtk.override (_wrap_gtk_menu_attach_to_widget): Added. Fixes + #97963. + + * pygtktreemodel.c: Add wrap all calls to PyObject_CallMethod() in + pyg_block_threads() and pyg_unblock_threads(). Fixes #98344. + +2002-11-20 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (PyObjectArg): arg matcher for "PyObject*" + args, from bug #98822. + +2002-11-19 James Henstridge <james@daa.com.au> + + * gtk/libglade.override (_wrap_glade_xml_get_widget_prefix): add + wrapper. + + * gtk/gtkobject-support.c: get rid of pyg_handler_marshal and + pyg_input_marshal, which were the last bits of code using the old + GtkArg APIs in gtk. + + * gtk/gtk.override: remove wrappers for gtk_idle_add, + gtk_timeout_add and gtk_input_add. + (_wrap_gtk_quit_add): change so that it doesn't use + pyg_handler_marshal. + + * gtk/__init__.py: set the TRUE and FALSE constants to True and + False if possible. Fall back to 0/1 otherwise. + (*): bind idle, timeout and input functions to gobject equivalents. + + * gobjectmodule.c (get_handler_priority): helper function to get + priority value as a keyword argument. + (pyg_idle_add): convert priority arg to an optional keyword + argument. + (pyg_timeout_add): and here. + (pyg_io_add_watch): and here. + +2002-11-18 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_idle_add): add a wrapper for g_idle_add. + (pyg_timeout_add): and a wrapper for g_timeout_add. + (pyg_io_add_watch): and a wrapper for g_io_add_watch. + (initgobject): add constants. + +2002-11-16 James Henstridge <james@daa.com.au> + + * pygobject.c (pygobject_connect_object): set up closure + correctly. Fix from bug #96922. + (pygobject_connect_object_after): and here. + + * gtk/gtk.override (_wrap_gtk_text_view_buffer_to_window_coords): + (_wrap_gtk_text_view_window_to_buffer_coords): wrap functions. + + * pango.override: fix up calls to pyg_enum_get_value() so that it + doesn't throw an exception when it shouldn't. + (_wrap_pango_layout_get_pixel_extents): call get_pixel_extents() + like it is supposed to. Fixes bug #93569. + + * pygtype.c (pyg_value_from_pyobject): if python object is None, + set GValue to NULL for boxed, pointer and GObject types. + (pyg_value_as_pyobject): convert G_TYPE_POINTER values to + gobject.GPointer python objects. + (pyg_value_as_pyobject): when converting G_TYPE_BOOLEAN values to + python objects, return one of Py_True or Py_False, so that Python + 2.3 will return an instance of bool. + + From patch on bug #96950 + + * gtk/gdk.override (_wrap_gdk_pixbuf_save): wrapper for + GdkPixbuf.save() + + * codegen/argtypes.py (GdkRectanglePtrArg.write_param): handle + GdkRectangle args with (null-ok) set. + + * gtk/gtk.defs (gtk.Style.paint_*): allow passing None for area, + widget and detail arguments. + + * codegen/docgen.py (DocbookDocWriter.write_method): wrap + <methodsynopsis> in a <programlisting> element. + (DocbookDocWriter.write_constructor): same here. + (DocbookDocWriter.write_params): wrap parameter description in a + <simpara> element to conform to docbook DTD better. + (DocbookDocWriter.write_params): add colon to end of terms, like + in gtk-doc output. + + * docs/pygtk-docs.xsl: small changes to produce output more + similar to new gtk-doc output. + +2002-11-15 James Henstridge <james@daa.com.au> + + * pango.defs (PangoContext.get_metrics): caller owns return value. + + * gtk/gtk.defs (GtkEntry.set_position): remove function, as it is + deprecated and shadows the recommended API. + +2002-11-11 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.override: Ignore gtk_entry_select_region (It's deprecated, + gtk_editable_select_region should be used instead). thanks + Lars Wirzenius. + +2002-11-06 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (BoolArg.write_return): add bool arg that + returns Py_True or Py_False (which are instances of the boolean + type in Python 2.3). Partial fix for bug 95372. + +2002-11-04 Joe Shaw <joe@ximian.com> + + * gtk/pygtkcellrenderer.c (pygtk_generic_cell_renderer_get_size): + Prevent NULL dereference by passing in local variables to + PyArg_ParseTuple instead of our function arguments. + +2002-10-17 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.override: s/arg/argument/ in exception strings. + (_wrap_gtk_box_query_child_packing): Use O! + PyGtkWidget_Type to + PyArg_ParseTuple... and check so child actually is a child, to + prevent returning uninitialized variables. + +2002-10-16 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.override (_wrap_gtk_container_child_set_property) + (_wrap_gtk_container_child_get_property) + (_wrap_gtk_container_child_set) + (_wrap_gtk_container_child_get) + (_wrap_gtk_container_add_with_properties) + (_wrap_gtk_container_foreach): Impl. + +2002-09-05 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (get_from_drawable): GdkPixbuf.get_from_drawable + doesn't actually leak pixbuf, remove caller-owns-return. + +2002-09-02 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (get_from_drawable, copy, add_alpha, scale_simple + composite_color_simple): more caller-owns-return. + +2002-08-31 James Henstridge <james@daa.com.au> + + * codegen/docgen.py (DocbookDocWriter.write_params): separate out + the code that writes the variable list. + +2002-08-30 Sander Vesik <sander.vesik@sun.com> + + * autogen.sh: use automake-1.6/aclocal-1.6 unless otherwise + requested + +2002-08-30 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (pixbuf_new_from_file, pixbuf_new_from_data + pixbuf_new_from_xpm_data, pixbuf_new_from_inline): + caller-owns-return, to avoid leaking pixbufs + +2002-08-26 Joe Shaw <joe@ximian.com> + + * codegen/argtypes.py: Add gsize and gssize as valid integer + types. + +2002-08-26 James Henstridge <james@daa.com.au> + + * codegen/docgen.py (DocWriter.write_full_hierarchy): fix up + misspelling. + + * pygtype.c (pyg_value_from_pyobject): fix typo from when I was + applying Thomas's patch. + + * codegen/docgen.py (build_object_tree): show interfaces, boxes + and pointers in class heirachy. + (DocbookDocWriter.write_synopsis): show parent class for + interfaces, boxes and pointers in class synopsis. + + * gtk/gtk-types.defs (CellEditable): CellEditable is an interface, + not a GObject. + +2002-08-25 James Henstridge <james@daa.com.au> + + * codegen/docgen.py: lots of docbuild updates. + + * docs/pygtk-docs.xml: add driver file. + + * docs/build-docs.py: move file to docs directory. + + * NEWS: update news file. + + * configure.in: increment version number. + +2002-08-24 James Henstridge <james@daa.com.au> + + mingw32 patches from Cedric Gustin <cgustin@ibelgique.com>: + + * gtk/gtk.override: ignore more socket/plug functions on win32. + + * gtk/gdk.override: gdk_pixmap_lookup is not implemented on win32. + + * gtk/Makefile.am (common_ldflags): and here. + + * pango.override (PyPangoAttribute_Type): initialise tp_alloc and + tp_new in the init() function, rather than in the structure + definition itself. + + * Makefile.am (common_ldflags): pass -no-undefined if we are on + windows. + + * configure.in: turn on win32 DLL support, and add OS_WIN32 and + PLATFORM_WIN32 conditionals for use in makefiles. + +2002-08-21 Jon K Hellan <hellan@acm.org> + + * codegen/argtypes.py (arg): More char* variants. + +2002-08-20 James Henstridge <james@daa.com.au> + + * gtk/gdk.defs (gtk.gdk.Window.set_title): fix up typo. + +2002-08-20 Johan Dahlin <jdahlin@telia.com> + + Patch from Arjan J. Molenaar: + * gobjectmodule.c (pyg_type_register): Don't unref borrowed + references. + +2002-08-19 James Henstridge <james@daa.com.au> + + * codegen/codegen.py + (GObjectWrapper.get_initial_constructor_substdict): fix small + typo. + + * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): ref the + widget after constructing it. + (_wrap_gtk_message_dialog_new): same here. + + * codegen/codegen.py + (GObjectWrapper.get_initial_constructor_substdict): add special + case code to ref() GtkWindow instances in their constructor, as we + don't own the initial reference (it is managed internally by + gtk+). This fixes bug #90213. + +2002-08-18 James Henstridge <james@daa.com.au> + + * pygtk.spec.in: update spec file. + + * gtk/Makefile.am: same here. + + * Makefile.am: install in a gtk-2.0 subdir of site-packages. + + * pygtk.py: new file to help with pygtk version parallel install. + + * gobjectmodule.c (pyg_object_set_property): unref object_wrapper. + (pyg_object_get_property): unref object_wrapper. (from patch by + Arjan Molenaar on bug #71021). + + * gtk/gtk.defs (TreeView.set_cursor): allow column to be None + (fixes bug #91043). + + * codegen/argtypes.py (ObjectArg.write_return): fix up generated + code. + + * gtk/gtk.override (_wrap_gtk_clist_new_with_titles): don't need + to manually sink. + (_wrap_gtk_tree_view_column_new): same here. + (_wrap_gtk_button_new): same here. + (_wrap_gtk_toggle_button_new): same here. + (_wrap_gtk_check_button_new): same here. + (_wrap_gtk_radio_button_new): same here. + (_wrap_gtk_list_item_new): same here. + (_wrap_gtk_menu_item_new): same here. + (_wrap_gtk_check_menu_item_new): same here. + (_wrap_gtk_radio_menu_item_new): same here. + (_wrap_gtk_image_menu_item_new): same here. + (_wrap_gtk_ctree_new_with_titles): same here. + (_wrap_gtk_dialog_new_with_buttons): same here. + (_wrap_gtk_message_dialog_new): same here. + (_wrap_gtk_progress_bar_new_with_adjustment): same here. + + * gtk/gtkmodule.c (sink_gtkobject): function to sink a GtkObject + if it is floating. + (init_gtk): register sink_gtkobject for sinking GtkObjects. + + * codegen/codegen.py + (GObjectWrapper.get_initial_constructor_substdict): get rid of + gtkobjectsink bit of code. + + * pygobject.c (pygobject_register_sinkfunc): new function to + register a function to get rid of the floating reference from an + object. + (sink_object): run a sinkfunc for an object if it has been + registered. + (pygobject_new): call sink_object + (pygobject_register_wrapper): call sink_object. + +Sat Aug 17 20:02:43 2002 Jonathan Blandford <jrb@gnome.org> + + * codegen/argtypes.py (TimeTArg.write_param): Add a time_t + parameter type. + +2002-08-17 James Henstridge <james@daa.com.au> + + * pygtype.c (pyg_value_from_pyobject): allow None when converting + to string GValue (bug picked up by Thomas Leonard. + + * gtk/gtk.defs (scroll_to_cell): allow column to be None (bug #90398). + +2002-08-16 Johan Dahlin <jdahlin@telia.com> + + * gtk/gdk.defs: Add null-ok to GdkWindow.set_cursor. + Fixes #88463. + +2002-07-23 James Henstridge <james@daa.com.au> + + * configure.in: updated version number. + +2002-07-20 James Henstridge <james@daa.com.au> + + * gtk/pygtkcellrenderer.c (pygtk_generic_cell_renderer_*): fix up + arguments, and use "O" format code for PyObject_CallMethod -- + can't rely on "N" causing the argument to be unrefed. + + * gtk/gtk.override (_wrap_gtk_cell_renderer_get_size): cell_area + is an argument; not a return. + + * gtk/gtk.override (GtkTreeModel.tp_as_number): add nonzero method + to tree models, so that they evaluate to a truth value even if + they have zero elements. (at request of msw). + + * gtk/gtk-extrafuncs.defs, gtk/gtk.override: add GenericCellRenderer. + + * gtk/pygtkcellrenderer.[ch]: add "generic" cell renderer code, + based on jrb's work. + +2002-07-18 James Henstridge <james@daa.com.au> + + * gtk/Makefile.am (glademodule_la_LDFLAGS): fix up + -export-symbols-regex flag. + (glmodule_la_LDFLAGS): same here. + +2002-07-15 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c (pygtk_tree_model_row_getsets): add next, + parent, model and path attributes to row objects. + (pygtk_tree_model_row_methods): add an iterchildren() method to + row objects. + + * gtk/gtk.override (pygtk_register_classes): rather than #defines, + set the tp_as_mapping and tp_iter members of GtkListStore, etc in + the init func. + + * gtk/gtk.override (_wrap_gtk_list_store_tp_iter): iter(liststore) + returns a gtk.TreeModelRowIter object. + + * gtk/gtk-types.c (PyGtkTreeModelRowIter_Type): new iterator type + that returns a sequence of gtk.TreeModelRow objects for nodes + under a particular parent node. + +2002-07-13 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (GtkListStore.tp_as_mapping): explicitly define + this, as PyType_Ready doesn't seem to inherit special methods from + secondary bases correctly. + (GtkTreeStore.tp_as_mapping): same here. + + * gtk/gtk-types.c (PyGdkRectangle_to_value): fix up argument + ordering bug. + + * gtk/gtk.override (_wrap_gtk_tree_model_tp_as_mapping): move + these mapping behaviours to the GtkTreeModel wrapper. + + * gtk/gtk-types.c (PyGtkTreeModelRow_Type): rename from + GtkListStoreRow, and extend so that it can handle setting cells + for tree stores. + + * build-docs.py (dg): parse template dirs for additional + documentation. + + * codegen/docgen.py (DocWriter.add_tmpldirs): add function to + extract docs in the tmpl files. + + * gtk/gtk.override (_wrap_gtk_list_store_tp_getitem): allow + subscripting of a GtkListStore to get row wrappers. + (_wrap_gtk_tree_model_get_iter_from_string): add override. + + * gtk/gtk-types.c: add PyGtkListStoreRow type, that represents a + row in a list store. + (_pygtk_register_boxed_types): set the ob_type member. + +2002-07-12 James Henstridge <james@daa.com.au> + + These changes help with win32 compat. + + * pygboxed.c (PyGBoxed_Type): set tp_alloc and tp_new to NULL. + (PyGPointer_Type): same here. + + * gobjectmodule.c (PyGInterface_Type): set tp_alloc and tp_new to + NULL. + (initgobject): set tp_new and tp_alloc for various types. + + * pygobject.c (PyGObject_Type): set tp_alloc and tp_new to NULL. + +2002-07-10 Murray Cumming <murrayc@usa.net> + + * codegen/docextract_to_xml.py: Used jamesh's new extract_tmpl() + function to get the sgml tmpl files. This file is only used by + gtkmm at the moment, not pygtk itself. + +2002-07-10 James Henstridge <james@daa.com.au> + + * configure.in: increment version number to 1.99.11. + + * codegen/argtypes.py (GdkNativeWindow): add arg type. This one + also from Thomas Leonard. + + * gtk/gtk.defs (set_tip): allow tip_private to be NULL, and allow + it to be omitted. Fix suggested by Thomas Leonard + <tal00r@ecs.soton.ac.uk> + + * gtk/gtkmodule.c (init_gtk): make sure LC_NUMERIC is set to C + after gtk_init_check(). + + * codegen/h2def.py (clean_func): apply patch by David Lehn + <dlehn@vt.edu> to correctly handle multi-line preprocessor + macros. From bug #81771. + (write_func): apply patch by Arjan Molenaar to write out + is-constructor-of lines for function definitions that look like + they might be constructors (doesn't catch every case, but is + better than nothing). From bug #80914. + +2002-07-09 James Henstridge <james@daa.com.au> + + * codegen/docextract.py (extract_tmpl): function to extract docs + from gtk-doc 'tmpl' files. Takes a list of tmpl/ directories as + an argument. Doesn't recurse. Fixes bug 86860. + + Reworking of Arjan Molenaar's (arjanmolenaar@hetnet.nl) patch from + bug 71435. + + * gtk/libglade.override (connect_one): watch the closure. + (connect_many): watch the closure. + + * gtk/gtk.override (_wrap_gtk_toolbar_append_item): watch closure + for signal. + (_wrap_gtk_toolbar_prepend_item): same here. + (_wrap_gtk_toolbar_insert_item): same here. + (_wrap_gtk_toolbar_insert_stock): same here. + (_wrap_gtk_toolbar_append_element): same here. + (_wrap_gtk_toolbar_prepend_element): same here. + (_wrap_gtk_toolbar_insert_element): same here. + + * pygobject.h (_PyGObject_Functions): add pygobject_watch_closure + to the list of exported functions. + + * pygobject.c (pygobject_watch_closure): new function to watch a + closure. We perform cyclic garbage collection on watched + closures. The closure will automatically be unwatched when it + gets invalidated. + (pygobject_traverse): traverse watched closures as well. + (pygobject_clear): invalidate all watched closures + (pygobject_dealloc): invalidate watched closures on dealloc too. + (PyGObject_Type): register the invalidate handler. + (pygobject_connect): watch the closure we connect here. + (pygobject_connect_after): same here.. + (pygobject_connect_object): same here. + (pygobject_connect_object_after): same here. + + * pygtype.c (pyg_closure_new): clean up closure on invalidate, + rather than finalize (on invalidate, we break references). + + * pygobject.h (PyGObject): add closures member to store references + to PyGClosures. + + + * gtk/gtk.override (_wrap_gtk_tree_model_iter_next): change so + that it returns the next item, rather than modifying the iter. + (_wrap_gtk_tree_model_iter_parent): add wrapper, so that we return + the parent iter. + (_wrap_gtk_tree_model_iter_nth_child): add wrapper. + +2002-07-08 James Henstridge <james@daa.com.au> + + * codegen/docextract.py (parse_tmpl): fix up simple loading of + tmpl files. + + * pygobject.c (pygobject_connect): apply another memory leak fix + from Arjan (from bug #87413). + (pygobject_connect_after): equivalent fix here. + (pygobject_connect_object): and here. + (pygobject_connect_object_after): and here. + + * gtk/gtk-types.c (PyGdkRectangle_to_value): add custom boxed + handlers for GDK_TYPE_RECTANGLE, so that 4-sequences can + automatically be marshaled to GdkRectangle values. + +2002-07-07 James Henstridge <james@daa.com.au> + + * pygobject.c (pygobject_get_refcount): add __grefcount__ property. + + * gtk/gdk.override (_wrap_gdk_event_tp_getattr): return a boxed + type for gdk.Event.area for expose events. + + * gtk/gtk.override (_wrap_gtk_widget_intersect): use + pygdk_rectangle_from_pyobject. + + * codegen/argtypes.py (arg): register GdkRectanglePtrArg handler + for "GtkAllocation*". + + * gtk/gtk.override (_wrap_gtk_paint_polygon): use + pygdk_rectangle_from_pyboejct to read rectangle argument. + (_wrap_gtk_widget_draw): remove overrides. Should be handled by + code generator. + (_wrap_gtk_widget_size_allocate): remove this override too. + + * codegen/argtypes.py (GtkTreePathArg.write_return): update to use + this function. + (ArgMatcher.register_boxed): short circuit if there is already a + handler for the boxed type (helps with setting custom handlers for + boxed types). + + * gtk/gtk-types.c (pygdk_rectangle_from_pyobject): new function to + parse a GdkRectangle from a PyObject. + + * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): print + a warning if the return value could not be converted to a + GtkTreePath. + + * gtk/gtk.override (_wrap_gtk_tree_model_get_value): don't assume + tree paths are tuples. + + * codegen/argtypes.py (GtkTreePathArg.write_param): fix up code + generator to get rid of assumption that tree paths are tuples, and + catch case where pygtk_tree_path_from_pyobject() returns NULL. + + * gtk/gtk-types.c (pygtk_tree_path_from_pyobject): change so that + we treat an integer PyObject as a tree path with a single index. + + * pygtype.c (pyg_closure_marshal): apply patch from Arjan Molenaar + <arjanmolenaar@hetnet.nl> that fixes a reference leak for the + argument tuple passed to the callback. + (pyg_signal_class_closure_marshal): apply similar fix here. + +Thu Jul 4 10:58:51 2002 Jonathan Blandford <jrb@gnome.org> + + * gtk/gtk-types.defs (TreeModelSort): We also implement + GtkTreeSortable. + + * gtk/gtk.defs (gtk_tree_model_sort_new_with_model): get the right + is-constructor-of value. + +2002-06-30 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (pygtk_menu_position): fix up menu position + func (fixes bug #85994). + +2002-06-27 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (check_version): caller does _not_ own the returned + string. Bug found by Anders Carlsson. + +2002-06-24 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (drag_source_set_icon_pixbuf): fix definition, as + reported by Thomas Leonard <tal00r@ecs.soton.ac.uk> + +Sun Jun 23 11:10:30 2002 Jonathan Blandford <jrb@gnome.org> + + * pygboxed.c: Add GBoxed::copy + + * pygobject.c (pygobject_init): take kwargs so we can pass + construct-only arguments to our initialization function. + +2002-06-23 James Henstridge <james@daa.com.au> + + * examples/simple/scribble.py: update example to work with current + PyGTK. + + * gtk/gtk.override (_wrap_gtk_tree_sortable_get_sort_column_id): + copy boxed arguments. + + * pygobject.h: fix up prototypes. + + * gobjectmodule.c (pyg_object_set_property): copy boxed arguments. + + * pygobject.c (pygobject_get_property): copy boxed arguments here. + (pygobject_emit): same here. + (pygobject_chain_from_overridden): same here. + + * pygtype.c (pyg_value_as_pyobject): add "copy_boxed" argument to + this function. + (pyg_closure_marshal): pass FALSE for copy_boxed argument. + (pyg_signal_class_closure_marshal): same here. + +2002-06-19 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_ctree_insert_node): check the + correct value when setting the sibling. Patch from Tim Waugh + <twaugh@redhat.com> + +2002-06-18 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_tree_sortable_get_sort_column_id): + implement GtkTreeSortable.get_sort_column_id + +2002-06-18 James Henstridge <james@daa.com.au> + + * gtk/gtkgl.override (_wrap_gtk_gl_area_share_new): constructors + return ints. + + * gtk/gdk.override, gtk/gtk.override: ignore all _ref() or + _unref() functions. + + * codegen/argtypes.py (BoxedArg.write_return): fix up handling of + ownsreturn for Boxed return types. + +2002-06-17 Matt Wilson <msw@redhat.com> + + * pygtype.c (pyg_value_as_pyobject): if a value holds a PyObject*, + the code that is getting the value is expecting a valid object. + Translate NULL pointers to Py_None. + +2002-06-17 Johan Dahlin <jdahlin@telia.com> + + * pango.defs: added PangoLayout.set_text + +Mon Jun 17 09:52:45 2002 Jonathan Blandford <jrb@gnome.org> + + * gtk/gtk-types.defs: Add GtkRequisition + * gtk/gtk.override: Add GtkRequisition + +2002-06-15 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_error_check): decref the exception instance + after raising the error. + +Fri Jun 7 12:39:27 2002 Jonathan Blandford <jrb@redhat.com> + + * gtk/gtk.override (pygtk_tree_selection_foreach_marshal): fix + GtkTreeSelection::get_selected() + +2002-06-09 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (BoxedArg.write_param): if the ptype is + different to self.typecode, cast the event + + * gtk/gdk-types.defs (EventExpose): remove definition, as it + breaks stuff. + +2002-06-04 Matt Wilson <msw@redhat.com> + + * gtk/gtk-extrafuncs.defs (set_all): add GtkAdjustment.set_all + + * gtk/gtk.override (_wrap_gtk_adjustment_set_all): implement, for + compatibility with PyGtk 0.6.x. Mark it as deprecated. + (_wrap_gtk_adjustment__set_value) + (_wrap_gtk_adjustment__set_lower) + (_wrap_gtk_adjustment__set_upper) + (_wrap_gtk_adjustment__set_step_increment) + (_wrap_gtk_adjustment__set_page_increment) + (_wrap_gtk_adjustment__set_page_size): implement setters for + GtkAdjustment.{value, lower, upper, step_increment, + page_increment, set_page_size} + +2002-06-03 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override + (_wrap_gtk_tree_view_insert_column_with_attributes): implement + (code mostly from jrb@redhat.com, minor fixups from me) + + * gtk/gdk-types.defs (EventExpose): added to make the code + generator write GdkEventExpose * for + _wrap_gtk_container_propagate_expose (gets rid of a warning) + +2002-05-31 Matt Wilson <msw@redhat.com> + + * examples/pygtk-demo/demos/list_store.py (fixed_toggled): the + path argument must be a tuple. Ints are not automatically + converted to tuples any more. + + * pygtype.c (pyg_value_as_pyobject): change the behavior of + G_TYPE_UINT to match the code generator's output on 32 bit + systems. + +2002-05-19 James Henstridge <james@daa.com.au> + + * gtk/Makefile.am (pygtk_PYTHON): install compat.py + +2002-05-18 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_editable_insert_text): add length + and pos as keywords, allow user to override the length of text to + be added (like other text insert functions) + +2002-05-16 James Henstridge <james@daa.com.au> + + * pygtype.c (pyg_value_from_pyobject): add support for + G_TYPE_INTERFACE, provided the interface has a prereq on + G_TYPE_OBJECT. + (pyg_value_as_pyobject): same here. + +2002-05-14 James Henstridge <james@daa.com.au> + + * pygtype.c (pyg_value_from_pyobject): add handler for + G_TYPE_PARAM (fix bug #81695). + (pyg_value_as_pyobject): same in this function. + + * codegen/argtypes.py (ULongArg): use 'O!' format code, so we can + reduce the size of the extra code we output. + (Int64Arg): add arg handler (to solve bug #81694). + (UInt64Arg): add arg handler (bug #81694 again). + (ObjectArg.write_param): simplify output code using O! code for + the normal and default value cases. + +2002-05-13 James Henstridge <james@daa.com.au> + + * configure.in: increment version number. + + * codegen/definitions.py (MethodDef.__init__): skip the + caller_owns_return bit if no return value clause given. + (FunctionDef.__init__): same here. + +2002-05-12 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (ObjectArg.write_return): add handler for + ownsreturn case for GObjects. + (BoxedArg.write_return): and for boxed types ... + (GtkTreePathArg.write_return): handle ownsreturn. + +2002-05-10 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (StringArg.write_return): make this handler + actually look at the ownsreturn argument. This fixes a crasher + when reading string type attributes (it was freeing the struct + member!). + +2002-05-09 James Henstridge <james@daa.com.au> + + * gtk/gtkgl.defs: get rid of gtk_gl and gdk_gl prefix on some + functions. + + * codegen/codegen.py (Wrapper.write_function_wrapper): pass + caller_owns_return as argument to write_return. + (Wrapper.write_getsets): add extra arg to write_return() call. + + * codegen/argtypes.py (*.write_return): add an extra "ownsreturn" + argument to all write_return functions. + + * codegen/definitions.py (MethodDef.__init__): read a + caller_owns_return variable. It defaults to false if ommitted, + unless we have a string return. + (FunctionDef.__init__): same here, but also make + caller_owns_return true for constructors. + +2002-05-08 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_tree_model_get_value): fix typo. I + should test these things before committing. + +2002-05-05 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (gtk_tree_sortable_set_sort_func): implement. + (gtk_tree_sortable_set_default_sort_func): implement. + + * gtk/compat.py: start of compatibility module. + + * gtk/gtk.override (_wrap_gtk_tree_model_foreach): fix up foreach + handler. + (_wrap_gtk_tree_model_get_iter): change to take a single argument + as the path, as discussed in bug 75811. + +2002-05-04 James Henstridge <james@daa.com.au> + + * Makefile.am (EXTRA_DIST): add extra files to dist (from bug + #79872). + + * gtk/gtk.defs (set_from_pixmap): allow NULL pointer passed for + mask. + + * gtk/gtk.override (pygtk_tree_foreach_marshal): pass model, path + and iter to the callback. + (_wrap_gtk_tree_model_foreach): implement. + +2002-04-29 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (ULongArg): implemented an argtype to handle + guint32 (on 32 bit platformas) and gulong arguments such that + large values (>MAX_INT on 32 bit platforms) don't overflow. + +2002-04-25 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (gtk_spin_button_new): s/gbutton/gdouble/ from Art Haas. + +2002-04-25 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (ArgMatcher.get): add hack to match + GdkEvent* and use the GdkEvent handler. + + * gtk/gtk.override (_wrap_gtk_text_iter_get_char): remove wrapper, + as arg type covers this case fine. + + * codegen/argtypes.py (GUniCharArg.write_return): add code for + handling gunichar returns. + (GUniCharArg.write_param): and support for gunichar parameters. + +2002-04-23 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: remove old commented out GdkGC implementation. + +2002-04-22 James Henstridge <james@daa.com.au> + + * gtk/Makefile.am (EXTRA_DIST): same here. + + * Makefile.am (EXTRA_DIST): include windows make stuff. + + * gtk/gdk.override (_wrap_gdk_gc_tp_setattr): don't allow setting + attributes on GdkGC instances. Simplifies things a bit. + +2002-04-21 Hans Breuer <hans@breuer.org> + + * codegen/codegen.py : added parameter --errorfilename + to allow redirection of stderr even with clumsy windoze + shell + + * codegen/override.py : extended to allow 'sys.platform' + specific ignores + + * examples/pygtk-demo/demos/colorsel.py : use + color = gtk.gdk.color_parse("blue") + to get the initial color + + * examples/pygtk-demo/demos/draw.py : (new file) + demonstrating some simple drawing operations. It is + using the gtk.GC interface additions below. + + * gtk/gdk.override : implement GdkGC.tp_getattr, + GdkGC.tp_setattr and gdk_gc_set_dashes (ported from #if 0'ed + code in gtk/gtk-types.c (should be removed there ?) + + * gtk/gtk.override : ignore-win32 GTK_TYPE_PLUG + GTK_TYPE_SOCKET gtk_socket_new (the TYPE ignores do not work yet) + + * config.h.win32 makefile.msc pygtk/makefile.msc : + new files to build pygtk on windoze using the established + glib/build/win32 infrastructure + + * pygtk/gtk/gtk-fake-win32.c : (new file) implementing + gtk_plug_get_type() and gtk_socket_get_type(). It could + vanish if codegen/codegen.py has learned something like + 'ignore-class-$(sys.platform) or my GtkPlug/GtkSocket + patch gets accepted with Gtk. + + * gtk/gtkmodule.c : added a g_assert() to ensure importing + pygobject did work. + +2002-04-21 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_drag_dest_find_target): implement. + (_wrap_gtk_drag_dest_get_target_list): implement. + (_wrap_gtk_drag_dest_set_target_list): implement. + +2002-04-20 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_container_get_children): implement. + (_wrap_gtk_container_set_focus_chain): implement. + (_wrap_gtk_container_get_focus_chain): implement. + +2002-04-19 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_text_buffer_insert_with_tags): implement. + (_wrap_gtk_text_buffer_insert_with_tags_by_name): implement. + (_wrap_gtk_text_child_anchor_get_widgets): implement. + (_wrap_gtk_tree_view_column_get_cell_renderers): implement. + (_wrap_gtk_tree_view_column_set_attributes): implement. + +2002-04-18 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_selection_data_get_targets): implement. + (_wrap_gtk_tree_get_row_drag_data): implement. + (_wrap_gtk_im_context_get_preedit_string): implement. + (_wrap_gtk_im_context_filter_keypress): implement. + (_wrap_gtk_im_context_get_surrounding): implement. + (_wrap_gtk_paint_polygon): implement. + + * gtk/gtk-types.defs (CellEditable): add CellEditable interface. + + * codegen/h2def.py (strip_comments): add function to strip + comments, and get rest of script to use it. This one doesn't use + RE's, so it doesn't cause a stack overflow when parsing + atkobject.h. + + * gtk/libglade.defs (get_toplevel_names): remove def, as it isn't + in the libglade API anymore. + +2002-04-16 Matt Wilson <msw@redhat.com> + + * gtk/libglade.override (_wrap_glade_bindtextdomain): added + wrapper which will allow user to bind a textdomain. Also sets the + codeset to UTF-8 if bind_textdomain_codeset is available. + + * config.h.in: added HAVE_BIND_TEXTDOMAIN_CODESET + + * configure.in: check for bind_textdomain_codeset + + * gtk/libglade.defs (bindtextdomain): added extra function to + implement gtk.glade.bindtextdomain + + * gtk/gtk.override + (pygtk_cell_data_func_marshal, + _wrap_gtk_tree_view_column_set_cell_data_func): added wrapper for + GtkTreeViewColumn.set_cell_data_func from Jonathan Blandford + <jrb@redhat.com> + +2002-04-17 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs, gdk/gdk.defs: updates to match final gtk 2.0 APIs. + +2002-04-15 James Henstridge <james@daa.com.au> + + * pango.override: add a PangoAttribute wrapper type, constructors + for various attributes, and methods for inserting attributes in a + PangoAttrList. + + * pango.defs, gtk/gdk.defs: add missing definitions. + +2002-04-12 Xavier Ordoquy <mcarkan@user.sourceforge.net> + + * configure.in: + * gtk/Makefile.am: + Added the gtk.gl module. + + * gtk/gtkgl.defs: + * gtk/gtkgl.override: + * gtk/gtkglmodule.c: (initgl): + Updated the gtkgl module and changed the name to gtk.gl + + * examples/gl/dots.py: + Updated example but still needs some work. + + * examples/gl/cone.py: + * examples/gl/gears.py: + Updated working examples. + +2002-04-10 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs: remove deprecation messages for many GtkList and + GtkListItem methods, as they are still required for the non + deprecated GtkCombo. GtkList's constructor is still marked + deprecated. + + * gtk/gtk.override (_wrap_gtk_text_iter_get_char): don't raise an + exception for unicode chars > 0xffff if we have 32 bit unicode + chars in python. + +2002-04-08 James Henstridge <james@daa.com.au> + + * pango.override (_wrap_pango_glyph_string_get_logical_widths): + add wrapper. + (_wrap_pango_parse_markup): add wrapper. + +2002-03-28 Johan Dahlin <jdahlin@telia.com> + + * gtk/gdk.defs: Add functions from gdkkeys.h + + * gtk/gdk-types.defs: Add GdkKeymap object + +2002-03-22 James Henstridge <james@daa.com.au> + + * gtk/libglade.override (connect_many): don't decref the return + value of PyDict_GetItemString(). + +2002-03-22 Johan Dahlin <jdahlin@telia.com> + + * codegen/codegen.py: move type_tmpl to Wrapper class, saves 100 loc + +2002-03-22 James Henstridge <james@daa.com.au> + + * codegen/codegen.py: code generator refactoring. Reduces file + length by 500 lines, and fixes a few bugs in the process. + +2002-03-19 Matt Wilson <msw@redhat.com> + + * autogen.sh: allow override of autoconf and autoheader + + * gtk/gtk.defs (GtkTreeModel.get_iter_root): use the + gtk_tree_model_get_iter_first code, get_iter_root is going to be + deprecated. + (GtkTreeModel.get_iter_first): added + + * gtk/gtk.override (_wrap_gtk_tree_model_get_iter_root): check the + return value of gtk_tree_model_get_iter_root and return None if it + failed. Rename to _wrap_gtk_tree_model_get_iter_first. + + * codegen/codegen.py (write_class, write_interface, write_boxed + write_pointer): use overrides.is_already_included to prevent from + having the same override code included twice in one file. This + allows two methods to point to the same function. + + * codegen/override.py (Overrides.is_already_included): added a + function that returns true if the override code has been emitted + already. + +2002-03-11 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c: remove pygobject_exception_notifiers and + pyg_fatal_exceptions_notify. + +2002-03-18 James Henstridge <james@daa.com.au> + + * pango.defs: remove indic functions -- they are part of the + semi-public engine API. + Remove pango-module functions -- backend API. + + * pango.override (_wrap_pango_layout_move_cursor_visually): implement. + (_wrap_pango_layout_xy_to_index): implement. + (_wrap_pango_layout_get_extents): implement. + (_wrap_pango_layout_get_pixel_extents): implement. + (_wrap_pango_layout_get_size): implement. + (_wrap_pango_layout_get_pixel_size): implement. + (_wrap_pango_glyph_string_extents): implement. + (_wrap_pango_glyph_string_extents_range): implement. + +2002-03-17 James Henstridge <james@daa.com.au> + + * pango.override (_wrap_pango_context_list_families): implement. + (_wrap_pango_font_get_glyph_extents): implement. + (_wrap_pango_font_family_list_faces): implement. + (_wrap_pango_font_map_list_families): implement. + (_wrap_pango_tab_array_get_tab): implement. + (_wrap_pango_tab_array_get_tabs): implement. + (_wrap_pango_layout_set_markup): implement. + (_wrap_pango_layout_set_markup_with_accel): implement. + (_wrap_pango_layout_index_to_pos): implement. + (_wrap_pango_layout_get_cursor_pos): implement. + + * gtk/gtk.override (ignore): ignore the GtkMenu append, insert and + prepend methods (they are deprecated and shadow the methods you + should use ...). + (_wrap_gtk_image_menu_item_new): add wrapper for GtkImageMenuItem + constructor (from bug 71893). + + * gtk/gdk.override (_wrap_gdk_pixbuf_get_pixels): implement + get_pixels to return the pixels as a string. + + * codegen/argtypes.py (GdkRectangleArg.write_return): fix up + problem with return type found by Peter Kese. + +2002-03-16 James Henstridge <james@daa.com.au> + + * pygtype.c (add_property_docs): fix up property listing. + + * gtk/libglade.override: add modulename directive. + + * gtk/gdk.override: add modulename directive. + + * gtk/gtk.override: add modulename directive. + + * atk.override: add modulename directive. + + * pango.override: add modulename directive. + + * codegen/codegen.py (write_class): if override.modulename is set, + put it into the classname. + (write_interface): same here. + (write_boxed): same here. + (write_pointer): same here. + + * codegen/override.py (Overrides.__parse_override): add support + for a "modulename" directive for overrides files. + + * gtk/gtk-types.c (PyGtkStyleHelper_Type): add module name to type + name, and remove the commented out obsolete GdkColormap + implementation. + + * gtk/gtk.override (_wrap_gtk_widget_get_pointer): return a + GdkRectangle instance. + + * gtk/gdk.override: implement setters for GdkRectangle attributes. + + * codegen/codegen.py (write_getsets): allow people to override the + setter without having to override the getter too. + (write_boxed_getsets): same here. + + * gtk/gdk.override: implement sequence behaviour for GdkRectangle + wrapper. + + * gtk/gdk-types.defs (Rectangle): add a GdkRectangle boxed type + definition. + + * pango.override (_wrap_pango_font_description_tp_compare): + override the compare slot to use pango_font_description_equal. + (_wrap_pango_font_description_tp_hash): and the hash function. + + * atk.override (_wrap_atk_relation_new): remove unused variable. + + * gtk/gtk-types.defs (Window): transient_parent field is a + GtkWindow, rather than a GtkWidget. + + * gtk/gtk.override (_wrap_gtk_ctree_node_tp_getattr): same here. + + * gtk/gdk.override (_wrap_gdk_event_tp_getattr): change to + "override-slot". + + * codegen/codegen.py (slots_list): a list of slots that we allow + overriding of. + (typetmpl): add extra substs for some slots. + (write_class): add code that sets up the slot substitutions. + (interfacetypetmpl): add slot substitutions. + (boxedtmpl): add slot substitutions. + (write_interface): add code to set slots. + (write_interface): add code to set slots, and get rid of the old + getattr handling. + + * codegen/override.py (Overrides.__parse_override): add support + for an "override-slot" section to overrides file for overriding a + slot in the PyTypeObject vtable. + + * gtk/gtk.override (_wrap_gtk_selection_data_get_text): add an + override for this -- it was the only one correctly making use of + + * codegen/argtypes.py (UCharArg.write_param): unimplement. + (guchar *) does not mean unicode, and often uchar returns are just + date (eg. pixbuf data). gtk_selection_data_get_text is the + exception. + +2002-03-15 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_colormap_alloc_color): new function + to allocate colours. + (_wrap_gdk_color_alloc): new wrapper that shows a deprecation + warning, and calls alloc_color. + +2002-03-10 James Henstridge <james@daa.com.au> + + * gtk/pygtktreemodel.c: apply Arjan Molenaar's patch to allow + selectively making the model leak free (although prone to crashing + if you aren't careful). + + * gtk/pygtktreemodel.h: add a leak_references member. + +2002-03-10 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk-types.defs (Window): Add 33 new fields + +2002-03-10 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: remove commented out GtkStyle code, as the + GObject based code now provides all the missing features. + + * gtk/gtk.override: implement getters (and some setters) for + GtkStyle properties. + + * gtk/gtk-types.c (_pygtk_style_helper_new): upgrade the style + helper code to work with gtk 2.0. + + * gtk/gtk-types.defs (Style): add public fields of the GtkStyle + object. + + * codegen/codegen.py (write_getsets): allow adding setters for + overriden properties (just do a string search for the setter + function prototype). + (write_boxed_getsets): same here. + +2002-02-19 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.defs (MessageDialog): add some fields for the + label and icon. These are marked private, but they are very + useful if you want to change the message in a dialog. + + * ChangeLog: spell Michele's name correctly (sorry!). + +2002-03-06 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtkmodule.c (init_gtk): If sys.argv is NULL, don't call + PyList_Size and don't call PySys_SetArgv if argc and argv is NULL. + Bug fix so non gtk stock icons is correctly skipped. + +2002-02-28 Johan Dahlin <jdahlin@telia.com> + + * gtk/gdk.defs: Add functions from gdk-pixbuf-loader.h + + * gtk/gdk-types.defs: Add GdkPixbufLoader object + +2002-02-27 Matt Wilson <msw@redhat.com> + + * configure.in: increase micro version of package (1.99.8) + +2002-02-25 Johan Dahlin <jdahlin@telia.com> + + * examples/pygtk-demo/pygtk-demo.py: Use set_size_request instead of + set_usize + + * gtk/gtk.override (_wrap_gtk_widget_translate_coordinates): Impl + (_wrap_gtk_editable_get_selection_bounds): Impl + (_wrap_gtk_entry_get_layout_offsets): Impl + + * gtk/gtk.defs: Add GtkTreeView.columns_autosize + Remove GtkTreeViewColumn.cell_renderer/cell_focus/ + cell_draw_focus/cell_is_visible_cell_set_dirty + + * gtk/gtk-types.defs: Add a few fields + + * examples/pygtk-demo/demos/appwindow.py: clean up a bit and add + broken stock icon registration + +2002-02-21 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.defs: Removed + gtk_tree_view_column_cell_render, + gtk_tree_view_column_cell_focus, + gtk_tree_view_column_cell_draw_focus and + gtk_tree_view_column_cell_set_dirty since they're now private + in gtk+. + +2002-02-18 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (create_item): remove defs for removed + GtkItemFactory functions. Fixes bug #69815. + +2002-02-12 Johan Dahlin <jdahlin@telia.com> + + * gobjectmodule.c (initgobject): Fix a leak + + * gtk/gtkmodule.c (init_gtk): Fix another one + +2002-02-06 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_icon_set_get_sizes): added an + override that will allow making an empty iconset, thus allowing + you to add modified sources to it. + +2002-02-05 Johan Dahlin <jdahlin@telia.com> + + * examples/pygtk-demo/demos/list_store.py: add toggle for the check + box column. + +2002-02-05 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (register_types): register pointer types as + well. + + * codegen/argtypes.py (PointerArg): handling for pointer arg + types. + (ArgMatcher.register_pointer): add function to register pointer + types. + + * gtk/gtk.override (_wrap_gtk_ctree__get_selection): GtkCTreeNode + is not a boxed type. + (_wrap_gtk_ctree_base_nodes): same. + (_wrap_gtk_ctree_insert_node): same. + (_wrap_gtk_ctree_find_by_row_data): same. + (_wrap_gtk_ctree_find_all_by_row_data): same. + (_wrap_gtk_ctree_node_get_text): same. + (_wrap_gtk_ctree_node_get_pixmap): same. + (_wrap_gtk_ctree_node_get_pixtext): same. + (_wrap_gtk_ctree_get_node_info): same. + (_wrap_gtk_ctree_node_set_row_data): same. + (_wrap_gtk_ctree_node_get_row_data): same here. + (_wrap_gtk_ctree_getattr): same here. + + * codegen/codegen.py (write_source): register pointer types as + pointers. + + * pango.override (_wrap_pango_font_description_new): ignore some + private (well, pango module API) functions. + + * gtk/gtk-types.defs (CTreeNode): make this a pointer type. + + * codegen/codegen.py (write_pointer_method): new method to write + methods for GPointer types. + (write_pointer_constructor): new function for writing constructor + for GPointer types. + (write_pointer_getsets): new function for writing getters for + pointer objects (this should be merged with the GObject and GBoxed + versions ...). + (write_pointer): add new function, which calls all the GPointer + related functions. + (write_source): write pointer types. + + * gobjectmodule.c (initgobject): actually ready the GPointer type. + + * gtk/gtk-types.defs (CTreeNode): get rid of fields here. They + will be covered by the custom getattr() function, so no need to + duplicate. + + * codegen/codegen.py (write_boxed_getsets): convert to use getsets + for boxed objects. + (write_boxed): use write_boxed_getsets() to write the getsets, + while allowing boxed objects to specify a getattr() function. + +2002-02-04 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (initgobject): add GPointer to the module dict. + (pygobject_api_functions): and to the API vtable. + + * pygobject.h (pyg_constant_strip_prefix): and add it to the + public header. + + * pygobject-private.h (pyg_pointer_new): add stuff to private + header ... + + * pygboxed.c (PyGPointer): add code to handle base GPointer type. + + * codegen/defsparser.py (DefsParser.__init__): add self.pointers + attribute. + (DefsParser.define_pointer): handle (define-pointer ...). + (DefsParser.write_defs): handle pointer types. + + * codegen/definitions.py (PointerDef): new definition type for + G_TYPE_POINTER subclasses. + +2002-02-04 Richard Hestilow <hestilow@ximian.com> + + * gtk/gtk.override (gtk_cell_renderer_get_size, get_fixed_size): + Don't call pygobject_get, just pass in v->obj. + +2002-01-31 James Henstridge <james@daa.com.au> + + * configure.in: increment version number of package and + requirements. Change -ansi to -std=c9x to work arround potential + problems with gcc 2.95.x. + + * gtk/libglade.override (connect_one): fix up signature on + function. + (connect_many): same here. + +2002-01-28 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_type_register): same code here, if __doc__ + hasn't already been set. + (initgobject): don't bother setting __doc__ on GObject here, as + pygobject_register_class() does this for us. + + * pygobject.c (pygobject_register_class): need to set the __doc__ + descriptor on every class, otherwise it gets lost. + +2002-01-24 James Henstridge <james@daa.com.au> + + * examples/pygtk-demo/demos/colorsel.py: + * examples/pygtk-demo/demos/dialogs.py: + * examples/pygtk-demo/demos/panes.py: + * examples/pygtk-demo/demos/sizegroup.py: add examples translated + by Michele Campeotto. + + * gtk/gtk.override (_wrap_gtk_stock_add): add gtk.stock_add() + function from Skip (bug 68363). + (_wrap_gtk_layout_get_size): add gtk.Layout.get_size() routine -- + from Skip (bug 68930) + (_wrap_gtk_frame_get_label): added function from Skip (bug 69024) + (_wrap_gtk_misc_get_alignment): same here. + (_wrap_gtk_ruler_get_range): same here. + + * examples/simple/simple.py: updated to use gobject.new(). + + * examples/simple/hello.py: updated version from Steve + George. (bug 67602) + + * pygtype.c (add_signal_docs): use g_string_append_printf(). + (add_property_docs): same here. + + * examples/simple/tooltip.py: updated version from Steve + George. (bug 67581). + +2002-01-23 James Henstridge <james@daa.com.au> + + * pygtype.c (object_doc_descr_get): fill in __doc__ descriptor + (add_property_docs): fix small bug. + (add_signal_docs): only get the class for a type if it is a + classed type. + + * gobjectmodule.c (initgobject): add __doc__ descriptor to GObject + and GInterface. Add __gdoc__ as a synonym because type.__doc__ + masks our descriptor sometimes :( + + * pygtype.c (object_doc_descr_get): skeleton of the __doc__ + descriptor. + (PyGObjectDoc_Type): type definition. + (pyg_object_descr_doc_get): function to create and return the + __doc__ descriptor (we only need one for all classes). + +2002-01-22 James Henstridge <james@daa.com.au> + + * pygobject.c: move GObject wrapper stuff here. + +2002-01-22 Johan Dahlin <jdahlin@telia.com> + + * codegen/codegen.py: Fix comments so jed can highlight correctly. + + * codegen/argtypes.py: Add GdkRectangleArg and GdkRectanglePtrArg + + * gtk/gtkgl.override: call pyg_block_threads instead of old + pygtk_block_threads. + + * gtk/gtk.override: Don't ignore gtk_paint* + + * gtk/gtk.defs: Remove Container.border_width + (GtkIconSet.icon_set_new_from_pixbuf): Make constructor of + GtkIconSet instead of gtk_icon_Set_new + (GtkStyle.draw_oval) (GtkStyle.draw_cross) (GtkStyle.draw_ramp) Remove. + (GtkStyle.draw_type): Add state_type parameter + + * gtk/gtk-types.defs (Widget): Add allocation field + (Container): add fields. + + * gtk/gdk-types.defs: Remove GdkRectangle + +2002-01-22 James Henstridge <james@daa.com.au> + + * pygtype.c: move closure stuff here. + + * gobjectmodule.c (initgobject): don't create boxed_marshal hash + table, and remove the type functions moved to pygtype.c. + + * pygtype.c: move GType stuff here from gobjectmodule.c. + (pyg_register_boxed_custom): store the custom boxed marshal + functions as GType data, rather than in a separate hash table. + +2002-01-21 James Henstridge <james@daa.com.au> + + * Makefile.am (gobjectmodule_la_SOURCES): list extra source files. + + * pygobject-private.h (pyg_boxed_new): new header for functions + shared between files in gobjectmodule. + + * pygboxed.c (pyg_register_boxed): move GBoxed handling code here. + +2002-01-21 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_radio_button_get_group): implemented + GtkRadioButton.get_group + +2002-01-16 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_toolbar_append_element): remove '!' + signs that shouldn't have been there. + (_wrap_gtk_toolbar_prepend_element): same here. + (_wrap_gtk_toolbar_insert_element): and again. + +2002-01-14 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (main): add a --load-types argument that runs + a python script before commencing code generation. The idea is to + allow loading of extra argument type handlers. + + * gtk/libglade.override (connect_one): s/ignore_glob/ignore-glob/ + +2002-1-13 Johan Dahlin <jdahlin@telia.com> + + * gtk/Makefile.am: Register gtk-types here, so XML.get_widget works. + +2002-01-12 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_type_from_object): convert None, int, long, + float, str and object to GTypes. + + * gtk/gtkmodule.c (init_gtk): only raise a runtime error if we + can't initialise gtk. + +2002-01-11 Matt Wilson <msw@redhat.com> + + * Makefile.am (EXTRA_DIST): added appwindow.py + + * examples/pygtk-demo/demos/appwindow.py: added demo + + * gtk/gtk.override (_wrap_gtk_toolbar_insert_stock): removed + debugging code I didn't mean to check in. + + * gobjectmodule.c (pyg_closure_new): use PyTuple_SetItem to build + the tuple if extra_args isn't one. It's faster than using + abstractions and clarifies ownership rules, so we always incref + extra_args even if we're about to wrap it in a tuple. Fixes + crashes when passing callback functions into + GtkToolbar.{append_item,prepend_item,insert_item,insert_stock, + append_element} + +2002-01-11 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (GtkTreePathArg.normal): added missing newline + + * gtk/gtk.defs (item_factory_path_from_widget): the return here + should be gconst-gchar*. The header in gtk is wrong, filed + #68527 against gtk. + + * gtk/gtk.override (pygtk_item_factory_cb): if the user passed + data to GtkItemFactory.create_items, call the callable with the + function data as the first parameter. + (_wrap_gtk_item_factory_create_items): take an optional + callback_data argument. Use PyGtkCustomNotify and + g_object_weak_ref to free up the reference to the callable and + data after the item factory is freed. + +2002-01-11 James Henstridge <james@daa.com.au> + + * codegen/h2def.py (find_obj_defs): handle typedef struct { ... } + style type defs, as used in bonobo. + +2002-01-09 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (GtkTreePathArg.freepath): added missing + newline. + + * gtk/gtk.override (pygtk_tree_foreach_marshal, + pygtk_tree_selection_marshal): handle exceptions raised in + callback func. + +2002-01-08 James Henstridge <james@daa.com.au> + + * gtk/__init__.py (threads_*): provide these functions in the gtk + namespace as well as gtk.gdk. + +2002-01-07 James Henstridge <james@daa.com.au> + + * examples/pygtk-demo/demos/itemfactory.py (main): the F10 key is + used to start navigating the menu -- not alt. + + * gtk/gtk-types.c (PyGtkStyleHelper_Dealloc): use PyObject_DEL. + (PyGtkStyle_Dealloc): same here. + (PyGdkWindow_Dealloc): same here. + (PyGdkGC_Dealloc): same here. + (PyGdkColormap_Dealloc): same here. + (pygdk_atom_dealloc): same here. + + * gobjectmodule.c (pyg_type_wrapper_dealloc): use PyObject_DEL to + prevent segfaults with pymalloc. + (pyg_param_spec_dealloc): same here. + + * gtk/gtkmodule.c (init_gtk): get rid of g_thread_init() call -- + this occurs in gobjectmodule now. + + * gtk/gdk.override (pygdk_unblock_threads): give the function the + right name (duh). + + * configure.in (AM_PATH_GLIB_2_0): add $extra_mods + + * gobjectmodule.c (initgobject): initialise GThread if threading + is enabled at compile time (this doesn't initialise GDK threading + though -- you need to run gtk.gdk.threads_init for that). + + * gtk/gdk.override (_wrap_gdk_threads_enter): add overriden + implementation that allows threads while waiting, so some other + thread has a chance to give up the gdk lock. + + * gtk/gtkmodule.c (functions): remove stuff. + + * gtk/pygtk-private.h: remove definitions here as well. + + * gtk/pygtk.h (_PyGtk_FunctionStruct): remove destroy notify and + thread block stuff. + + * gtk/gtkobject-support.c: remove pygtk_destroy_notify. + + * gtk/gtk.override (pygtk_tree_foreach_marshal): move this + function here from gtkobject-support.c, and don't bother blocking + threads. + (_wrap_gtk_tree_selection_selected_foreach): same here -- don't + need to unblock threads. + (pygtk_tree_selection_marshal): move this function here from + gtkobject-support.c. Convert to use pyg_block_threads. + (_wrap_gtk_dialog_run): add overriden implementation that unblocks + threads. + (_wrap_gtk_main): use pyg_block_threads + (_wrap_gtk_main_iteration): same. + (_wrap_gtk_item_factory_create_items): same here. + (_wrap_gtk_menu_popup): same here. + (_wrap_gtk_clist_set_row_data): use pyg_destroy_notify + (_wrap_gtk_timeout_add): same here. + (_wrap_gtk_idle_add): same here. + (_wrap_gtk_quit_add): same here. + (_wrap_gtk_input_add_full): same here. + (_wrap_gtk_ctree_node_set_row_data): same here. + + * gtk/gtkobject-support.c: remove PyGTK_BLOCK_THREADS and + PyGTK_UNBLOCK_THREADS macros. + (pygtk_destroy_notify): use pyg_block_threads. + (pygtk_custom_destroy_notify): same. + (pygtk_handler_marshal): same. + (pygtk_input_marshal): same. + + * gtk/gdk.override (_wrap_gdk_threads_init): register gdk lock + based recursive threads block/unblock functions. If threading was + disabled at compile time, then this function will error out. + + * gtk/gdk.defs (threads_enter, threads_leave, threads_leave): add + functions. + + * gobjectmodule.c (functions): add destroy_notify here as well. + + * pygobject.h: add destroy_notify to the PyGObject_Functions + vtable. + + * gobjectmodule.c (pyg_set_thread_block_funcs): handler for + registering thread block/unblock funcs. + (pygobject_destroy_notify): block threads during DECREF call. + (pyg_closure_destroy): block threads during closure DECREF. + (pyg_closure_marshal): block threads when calling function. + (pyg_signal_class_closure_marshal): block threads. + (functions): add extra functions to vtable. + + * pygobject.h (struct _PyGObject_Functions): add thread + block/unblock slots to the API table. + +2002-01-03 Matt Wilson <msw@redhat.com> + + * Makefile.am (EXTRA_DIST): add missing demo files + + * examples/pygtk-demo/demos/itemfactory.py: added demo + + * gtk/gtk.override (_wrap_gtk_item_factory_create_items): accept a + sequence for the entries, not just a list. + +2002-01-03 Matt Wilson <msw@redhat.com> + + * examples/pygtk-demo/demos/list_store.py (create_model): remove + -1 from store.set call. + + * gtk/gtk.defs (GtkMenuBar.append, GtkMenuBar.prepend, + GtkMenuBar.insert): uncomment, just ignore these in gtk.override + + * gtk/gtk.override (ignore): ignore gtk_menu_bar_append, + gtk_menu_bar_insert, and gtk_menu_bar_prepend. + + * gtk/gtkmodule.c (init_gtk): remove unused v variable. + + * gtk/gtk-types.defs (DialogFlags): s/define-enum/define-flags/ + +2001-12-24 James Henstridge <james@daa.com.au> + + * Makefile.am (EXTRA_DIST): same here. + + * gtk/Makefile.am (EXTRA_DIST): include the defs files in the + dist, or things don't work. + +2001-12-24 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.override: Remove window arg. + (_wrap_gtk_item_factory_create_items): Change PyArg_ParseTuple + format args a bit and reset cb and ent for every item. + +2001-12-24 James Henstridge <james@daa.com.au> + + * configure.in: define pygtk version and required package versions + as m4 macros at the top of the file rather than shell variables. + These can be put before the AC_INIT macro without problems. + (AM_PATH_PYTHON): require python 2.2 final. + +2001-12-21 James Henstridge <james@daa.com.au> + + * gtk/gdk.defs (gdk_colormap_change): comment out, as we have two + GdkColormap.change's. + + * gtk/gtk.defs (append): this is a method of menu + (prepend): same here. + (insert): same here. + (): now comment out the above three, as they shadow the methods + their deprecation messages recommend using. (problem picked out + by running xmllint over output docs). + + * codegen/docgen.py (DocbookDocWriter.__init__): add constructor + with a use_xml parameter, which turns on DocBook/XML output. + (DocbookDocWriter.create_filename): use ".xml" as extension if we + are writing DocBook/XML. + (DocbookDocWriter.output_toc): optionally write out the + DocBook/XML doctype. + + * codegen/docgen.py (DocWriter.output_interface_docs): new + function for outputting documentation about interfaces. + (DocWriter.output_docs): output interface definitions. + (DocbookDocWriter.write_heirachy): convert the list of interfaces + the class implements into a list. + +2001-12-20 James Henstridge <james@daa.com.au> + + * build-docs.py: script to generate documentation. + + * codegen/docgen.py (DocWriter.add_sourcedirs): new function for + scanning source dirs, pulled out of the constructor. + (DocWriter.output_docs): sort object defs by python name rather + than c anme. + + * codegen/docgen.py (DocWriter.__init__): don't actually load the + defs and overrides file in the constructor. + (DocWriter.add_docs): new method for parsing a (defs, overrides, + modulename) triple, -- the aim being to include docs for multiple + modules in one sgml document. Also, build up a map from C type + names to python names. + (DocbookDocWriter.__format_function): translate to python class + names. + (DocbookDocWriter.__format_symbol): same here. + (DocbookDocWriter.create_constructor_prototype): and here. + (DocbookDocWriter.write_heirachy): and here. + (DocbookDocWriter.write_method): and here. + + * codegen/scmexpr.py (Parser.startParsing): allow passing a + filename as the argument here. + + * codegen/override.py (Overrides.handle_file): don't make this + method private. + + * codegen/docextract.py (extract): add second argument doc_dict, + so that the function can be used to update an existing dictionary. + + * configure.in (minver): require 2.2c1 + + * gobjectmodule.c (pygobject_chain_from_overridden): fix for + updated API. + (pygobject_methods): just call the method "chain". + +2001-12-19 James Henstridge <james@daa.com.au> + + * codegen/docgen.py (DocWriter.output_object_docs): fix for + changes to the way parent types are listed in the defs format. + (DocWriter.create_method_prototype): of_object is only a string + now -- not a 2-tuple. + (DocbookDocWriter.make_method_ref): same here. + (DocbookDocWriter.__format_function): and here ... + (DocbookDocWriter.__format_symbol): and here :) + (DocbookDocWriter.write_method): again here. + +2001-12-18 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_value_from_pyobject): add support for + int64/uint64. Fix up code for unsigned int/long to parse long + ints if necessary. + (pyg_value_as_pyobject): add support for int64/uint64, and get + UINT/ULONG to return python long ints if necessary, rather than + wrapping around. + + * Makefile.am (EXTRA_DIST): add new example to dist. + + * examples/gobject/properties.py: test program that implements a + few properties. + + * gobjectmodule.c (add_properties): new function for parsing the + __gproperties__ class attribute. + (create_property): helper routine for creating and installing the + new pspecs. + (pyg_type_register): add code to call add_properties if a + __gproperties__ attribute is found. + (pyg_object_class_init): set set_property/get_property methods in + vtable, and get rid of debug message. + (initgobject): add G_PARAM_* constants. + +2001-12-17 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_chain_from_overridden): add chaining + function. This will need to change when Tim makes the changes to + the chaining API. This was just to test that things worked + correctly (and they do). Possibly this should be renamed to just + GObject.chain() or GObject._chain(). + +2001-12-15 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (add_signals): put the class ref/unref in here, + so it is only done once. The ref/unref is really needed for + adding signals as well, so that we don't end up with dups. + +2001-12-14 Johan Dahlin <jdahlin@telia.com> + + * gobjectmodule.c (initgobject): Add gobject.glib_version. + + * configure.in (PYGTK_MINOR_VERSION): Add and define + PYGTK_[MAJOR,MINOR,MACRO]_VERSION. Also add *_REQUIRED_VERSION + for dependencies. + + * gtk/gtkmodule.c (init_gtk): remove gtk_major_version, + gtk_minor_version and gtk_macro_version and replace them with + gtk_version, + Add pygtk_version. + +2001-12-14 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (override_signal): another helper function for + overriding existing signals. Haven't done chaining support yet. + (add_signals): if value in __gsignals__ dict is None or + 'override', then call override_signal instead. + (override_signal): add g_type_class_ref() calls so that parent + signals are registered. + + * examples/gobject/signal.py: use __gsignals__ notation here. + + * gobjectmodule.c (create_signal, add_signals): helper routines + for handling __gsignals__ attribute of classes. + (pyg_type_register): add support for creating signals as part of + type registration. + +2001-12-14 Johan Dahlin <jdahlin@telia.com> + + * gtk/gtk.override (_wrap_gtk_window_get_position): + (_wrap_gtk_window_get_size): + (_wrap_gtk_window_get_default_size): Impl. + + * gtk/gtk-types.defs (FileSelection): Added fields. + + * gtk/gtk.defs (gtk_pixmap_new): Fix deprecation warning. GtkPixbuf->GdkPixbuf + * gtk/gtk.defs (set_usize): dito, set_default_size -> set_size_request + +2001-12-12 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c (pyg_closure_marshal, + pyg_signal_class_closure_marshal): always print and clear the + exceptions in callback marshalers. People who want to catch these + exceptions and make them fatal should use sys.excepthook. + (pyg_fatal_exceptions_notify, pyg_fatal_exceptions_notify_add, + pyg_fatal_exceptions_remove): remove now unused functions. Also + remove them from the PyGObject_API. + + * gtk/pygtk.h (PyGtk_FatalExceptions): remove. + + * gtk/pygtk-private.h (PyGtk_FatalExceptions): remove. + + * gtk/gtkmodule.c (init_gtk): don't bother with + PYGTK_FATAL_EXCEPTIONS. + (pygtk_main_quit): remove unused code. + + * gtk/gtk.override (_wrap_gtk_item_factory_create_items, + _wrap_gtk_menu_popup): likewise, always print and clear the + exception. + +2001-12-11 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs: added deprecation messages + + * codegen/definitions.py (FunctionDef.write_defs, + MethodDef.write_defs): write out deprecation messages if they + exist + (MethodDef.__init__, FunctionDef.__init__): parse deprecated tags + in defs file, added some sanity checking and error reporting + + * codegen/codegen.py (write_method, write_constructor, + write_function): write out deprecation warning messages. + +2001-12-11 James Henstridge <james@daa.com.au> + + * atk.defs: remove atk_attribute_get_name/value (again). + +2001-12-10 Matt Wilson <msw@redhat.com> + + * gtk/libglade.defs: added missing defs. + + * atk.defs: add missing defs. + +2001-12-09 James Henstridge <james@daa.com.au> + + * atk.defs (text_attribute_get_name): rename. + (text_attribute_get_value): rename. + + * gtk/gtk.override (_wrap_gtk_input_add_full): use + PyObject_AsFileDescriptor to convert the first arg to the fd. + +2001-12-07 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkTable.get_row_spacing): one more missing defs + entry. + +2001-12-07 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (ignore-glob): ignore all functions that start + with _ + + * codegen/definitions.py (FunctionDef.merge): if a cname changed + from a method to a function, the merge would fail here. Handle + the exception. + + * codegen/argtypes.py, codegen/codegen.py: don't use + for + strings, use literal concatenation or """. + + * codegen/defsparser.py (DefsParser.printMissing): new function to + support missingdefs.py + + * codegen/missingdefs.py: new program to help find things missing + in .defs files + + * gtk/gtk.defs, gtk/gtk-types.defs: merged in missing entries in + the defs file. + +2001-12-06 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (BoxedArg, CustomBoxedArg): for null-ok + functions, added "or None" to the error string. + + * gtk/gtk.defs (GtkTreeModel.iter_n_children, + GtkTreeModel.iter_nth_child): add null-ok to the special cased + iter parameters that mean 'root'. Reported by Robert Nikander. + +2001-12-05 Matt Wilson <msw@redhat.com> + + * codegen/codegen.py (write_function, write_method, + write_boxed_method): output the args and kwargs to the wrapper + function only if it takes arguments + +2001-12-05 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (WrapperInfo): split get_varlist into + get_varlist and get_kwlist to avoid unused kwlists when generating + noarg functions. + + * codegen/codegen.py (write_boxed, write_functions, write_class, + write_interface): check to see if override function wants no args, + use METH_NOARGS if so. Also get the method flags from the various + function writers so they can ask to have noargs placed in their + flags + (write_function, write_method, write_boxed_method): write out the + parse args and keywords only if there are parameters to parse. + Return METH_NOARGS if we don't accept arguments, + METH_VARARGS|METH_KEYWORDS otherwise. + + * codegen/override.py (Overrides.is_overriden): keep a dictionary + of overrides that have the 'noargs' key in them. + + * gtk/gtkgl.override, gtk/gtk.override, gtk/gdk.override): removed + argument parsing from functions/methods that take no arguments, + mark them as noarg + + * examples/pygtk-demo/demos/list_store.py (create_model): use new + GtkListStore.set method. + +2001-12-04 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_list_store_set, + _wrap_gtk_tree_store_set): added. + +2001-12-03 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_rc_set_default_files, + _wrap_gtk_rc_get_default_files, _wrap_gtk_icon_set_get_sizes, + _wrap_gtk_cell_renderer_get_size, + _wrap_gtk_cell_renderer_get_fixed_size): added + + * codegen/argtypes.py (UCharArg.write_return): implemented. + + * codegen/codegen.py (exc_info): wrote a common function that + returns a descriptive string when wrapper generation goes wrong. + Modified codegen functions to call it on exception. + + * gtk/gtk.defs (rc_set_image_loader, ctree_node_from_cobject): + removed + +2001-12-02 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_text_buffer_create_tag): fix up + format string, from bug #65636 (Skip again). + + * gobjectmodule.c (pyg_type_wrapper_repr): fix up format string, + from bug #65640 (from Skip). + + * codegen/argtypes.py (GTypeArg.write_return): use pyg_error_check + to raise the exception. Now the domain and code elements of the + GError are available. + (GtkTreePathArg.write_param): add to codeafter in order to free + the tree path we created, fixing a leak. + + * gobjectmodule.c (initgobject): create a gobject.GError + exception. + (pyg_error_check): function for converting a GError into a + gobject.GError python exception. + +2001-12-01 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py: change write_return methods to simply add a + "ret" variable to the varlist of the appropriate return type, and + add code for returning the correct value to codeafter code list. + (GErrorArg.write_param): add error handling code to the codeafter + code list. + + * codegen/codegen.py: s/extracode/codebefore/ + (*): get rid of the %(handlereturn)s stuff, and replace with "ret + = functioncall" statements, followed by %(codeafter)s. + + * codegen/codegen.py: update to use WrapperInfo. + + * codegen/argtypes.py: lots of changes to add a WrapperInfo class, + that replaces many of the arguments to the + write_param/write_return methods of ArgTypes. + +2001-11-30 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_register_class): get rid of + class_hash, and store the pointer to the python class with + g_type_set_qdata(). + (pygobject_lookup_class): look up python class with + g_type_get_qdata. + (pyg_object_class_init): a class_init function for types defined + in python. The python class is passed as the "class_data" + argument. Currently empty, but will be used to install + eg. get_property and set_property members. + (pyg_type_register): store pointer to class like we do for types + defined in C. + (initgobject): move the quark initialisations above the + registration of GObject. + +2001-11-29 Matt Wilson <msw@redhat.com> + + * gtk/libglade.defs (glade_xml_new): fname is actually required. + Added default to NULL for all arguments that are null-ok. + + * gtk/libglademodule.c: added missing #include pygobject.h. Why + does pygtk.h define NO_IMPORT_PYGOBJECT? + + * atk-types.defs: split atk types off into its own file + + * Makefile.am, gtk/Makefile.am: more Makefile cleanups + +2001-11-28 Matt Wilson <msw@redhat.com> + + * gtk/Makefile.am: removed disthook, marked autogenerated .c files + as nodist sources. + + * Makefile.am: likewise. Use a suffix rule instead of a pattern + rule for wider make compatibility. + + * gtk/gtk.override (_wrap_gtk_window_set_geometry_hints): added + min_aspect and max_aspect to the kwlist so that the kwlist length + matches the number of arguments in the argparse format string. + + * codegen/h2def.py (define_func): someone was thinking that a + re.split looked like string.split. Also fix the argument munger + that I broke the other day. + + * atk.override (_wrap_atk_relation_new): fixed the constructor so + it actually works + + * gtk/Makefile.am ($(srcdir)/gtk.c): get the atk types + + * gtk/gtk.override: import atk.Object as PyAtkObject_Type + + * Makefile.am (EXTRA_DIST): added examples/atk/atk-demo.py + + * atk.defs (relation_new): mark as constructor of AtkRelation + (atk_no_op_object_factory_new): mark as constructor of + AtkNoOpObjectFactory + +2001-11-27 Matt Wilson <msw@redhat.com> + + * atk.defs, atk.override, atkmodule.c: added start of atk wrapper + + * gtk/Makefile.am (DISTCLEANFILES): remove generated files + ($(srcdir)/gtk.c): modify targets to output generated files in the + builddir, not the srcdir. + ($(srcdir)/gdk.c): likewise. + ($(srcdir)/libglade.c): likewise. + + * codegen/h2def.py (define_func): add check to workaround broken + string.replace semantics on python 1.5 + + * codegen/codegen.py (write_enums): if the enum or flag doesn't + have a GType, just add those enum values listed in the defs file + by hand. + + * codegen/argtypes.py (ArgMatcher.register_enum): if defs file + doesn't specify a GType for the enum, use G_TYPE_NONE. + (ArgMatcher.register_flag): likewise. + + * gobjectmodule.c (pyg_enum_get_value): allow enums to pass + G_TYPE_NONE in as the type, disabling the string to value + conversion. + (pyg_flags_get_value): likewise. + (pyg_constant_strip_prefix): new function to combine common + codepath. + (pyg_enum_add_constants): use pyg_constant_strip_prefix + (pyg_flags_add_constants): likewise. + (functions): make pyg_constant_strip_prefix available to users of + pygobject + + * pygobject.h: added pyg_constant_strip_prefix wrapper + + * configure.in: added ATK test, subst for ATK_CFLAGS and ATK_LIBS. + + * Makefile.am (%.c): added generic codegen target for pango and + atk. Added DISTCLEANFILES so that generated files will be + removed. Added atk targets, cflags, ldflags. + +2001-11-26 Matt Wilson <msw@redhat.com> + + * configure.in: bump up required versions of gtk, pango, and glib. + +2001-11-26 Matt Wilson <msw@redhat.com> + + * configure.in: 1.99.5 + +2001-11-20 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkStyle.render_icon): change size argument type + to GtkIconSize. + (gtk_image_new_from_stock): likewise, change from constructor to + function, rename to image_new_from_stock. + (gtk_image_new_from_icon_set): likewise. + (gtk_image_new_from_animation): change from constructor to + function, rename to image_new_from_animation. Should these just + go in as an overloaded constructor for GtkImage()? + (icon_source_new): is-constructor-of GtkIconSource + (icon_set_new): is-constructor-of GtkIconSet + +2001-11-19 Matt Wilson <msw@redhat.com> + + * codegen/codegen.py (attrchecktmpl): fix indention. + (write_getsets): use the handler's error handling code snippits. + (write_boxed_getattr): likewise. + + * gobjectmodule.c (pyg_fatal_exceptions_notify_{add,remove}): + fixed think-o, don't store a pointer to the function pointer, just + store the function pointer. + + * pango.defs (PangoContext.add_font_map): renamed to set_font_map + (PangoFontMap.load_font): added context argument + +2001-11-17 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs: added GtkTreeView.get_columns, + GtkTreeView.move_column_after, GtkTreeView.map_expanded_rows, + GtkTreeView.row_expanded, GtkTreeView.get_cursor, + GtkTreeView.get_bin_window, GtkTreeView.enable_model_drag_source, + GtkTreeView.enable_model_drag_dest, GtkTreeView.set_enable_search, + GtkTreeView.get_enable_search, GtkTreeView.get_search_column, + GtkTreeView.set_search_column, GtkTreeView.get_search_equal_func, + GtkTreeView.set_search_equal_func, + GtkTreeView.set_destroy_count_func + +2001-11-17 Matt Wilson <msw@redhat.com> + + * codegen/codegen.py (write_*): pass in any error checking and + handling code snippets into the return function writer. Only add + keywords for arguments that are going to be parsed, Python 2.2 now + checks to make sure the kwlist length equals the paramspec. + + * codegen/argtypes.py: remove GtkCTreeNode custom registration, + it's a generic boxed type. Added a GErrorType requested in bug + #63980. This requires inserting possible error checking in each + type's write_return method. + + * gtk/gtk.defs (gtk_image_new_from_icon_set): changed size + argument from char* to GtkIconSize + (GtkIconSet.render_icon): likewise + + * gtk/gtk-types.defs (IconSet): added GtkIconSet boxed type + + * gtk/gtk.override (_wrap_gtk_tree_model_get_value): value is not + parsed, remove it from the kwlist. + +2001-11-16 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_tree_view_get_path_at_pos): remove + window argument + + * gtk/gtk.defs (GtkTreeView.get_path_at_pos): remove window argument + + * gobjectmodule.c (pyg_param_spec_getattr, pyg_param_spec_repr): + s/g_param_get_{name,nick,blurb}/g_param_spec_get_{name,nick,blurb}/g + (pyg_fatal_exceptions_notify_remove): use the right type. + + * gtk/pygtk.h (init_pygtk): need to cast to the right type for + _PyGTK_API init. + +2001-11-15 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkEditable.insert_text): note default for + position to be 0. + + * gtk/gtkmodule.c (init_gtk): added gtk.major_version, + gtk.minor_version, and gtk.micro_version. #59830. + +2001-11-15 Matt Wilson <msw@redhat.com> + + * gtk/pygtk.h (init_pygtk): cast void* to _PyGtk_FunctionStruct* + when retrieving the API struct, #62872 + + * pygobject.h: added PyGFatalExceptionFunc typedef, API wrapper + for pyg_fatal_exceptions_{add,remove}. + + * gobjectmodule.c (pyg_boxed_new): return NULL on assertion + failures, #62814 + (pyg_closure_new): actually assign swap_data to the closure. + (pyg_fatal_exceptions_notify, pyg_fatal_exceptions_notify_add, + pyg_fatal_exceptions_remove): added mechanism for gobjectmodule using + modules to get a function called when a fatal exception happens in + closures, etc. + (pyg_closure_marshal, pyg_signal_class_closure_marshal): return + NULL if a gobjectmodule using module registered a fatal exception + function. + + * gtk/pygtk-private.h: added declarations for + pygtk_custom_destroy_notify, pygtk_tree_selection_marshal, + pygtk_tree_foreach_marshal. Added typedef for + PyGtkCustomNotify. #62814 + + * gtk/gtkmodule.c (init_gtk): register stock items, #62814. Set + up fatal exception stuff if PYGTK_FATAL_EXCEPTIONS is set. This + isn't 100% done yet, gtk mainloop specific functions still need + work. + + * gtk/gtkobject-support.c (pygtk_tree_selection_marshal): added, + #62814 + (pygtk_tree_foreach_marshal): added, #62814 + (pygtk_custom_destroy_notify): added, #62814 + + * gtk/gtk.override (_wrap_gtk_tree_selection_set_select_function): + added, #62814 + (_wrap_gtk_tree_selection_selected_foreach): added, #62814 + (_wrap_gtk_widget_path): added, #62393 + (_wrap_gtk_widget_class_path): added, #62393 + + * gtk/gtk.defs (GtkWidget.set_size_request): added, #62474 + (GtkTreeSelection.get_mode): added, #62474 + +2001-11-13 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs: removed GtkAccelGroup.accel_group_get_default, + GtkAccelLabel.get_accel_object, GtkAccelLabel.set_accel_object, + item_factory_parse_rc, item_factory_parse_rc_string, + GtkWidget.remove_accelerators, GtkWidget.accelerator_signal, + GtkWidget.lock_accelerators, GtkWidget.unlock_accelerators, + GtkWidget.accelerators_locked to reflect Tim's accelerator API + revamp checkin. + (GtkTreeDragDest.row_drop_possible): modified arguments to match + new API. + +2001-11-01 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkSelectionData.tree_set_row_drag_data): renamed + GtkSelectionData.data_set_tree_row, #60218 + (GtkSelectionData.tree_get_row_drag_data): renamed + GtkSelectionData.data_get_tree_row, #60218 + (GtkFontSelection.get_preview_text): constify return arg + (GtkFontSelectionDialog.get_preview_text): likewise. + (GtkSelectionData.set_text): added len parameter + +2001-10-31 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkTreeStore.clear): added + +2001-10-29 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs: remove gtk_cell_renderer_toggle_[gs]et_active. + +2001-10-26 Matt Wilson <msw@redhat.com> + + * configure.in (AC_INIT): increase version to 1.99.4 + (AM_PATH_GLIB_2_0): change minver to 1.3.10 + (PKG_CHECK_MODULES): change pango requirement to >= 0.21 + (AM_PATH_GTK_2_0): change minver to 1.3.10 + +2001-10-25 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (PyGObject_Type): include the module name in the + typename. + (PyGInterface_Type): same here. + (PyGBoxed_Type): same here. + (pygobject_register_class): when working out what name to put into + the module dictionary, strip off everything before the last dot, + so the type name can include the module. + + * configure.in (minver): require python 2.2b1 + + * gobjectmodule.c (initgobject): remove statements using + tp_defined (they are no longer needed). + +2001-10-23 Matt Wilson <msw@redhat.com> + + * codegen/codegen.py (boxedgetattrtmpl, write_boxed_getattr): at + the end of the getattr function, we must use Py_FindMethod. This + fixes GtkSelectionData's methods, and DnD works again. + + * codegen/h2def.py (clean_func): deal with const return types when + cleaning up function prototype + (proto_pat): add '-' to the ret group so that const- will work in + the return type + +2001-10-23 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_text_iter_forward_search): use new + forward search API with flags enum in CVS. + (_wrap_gtk_text_iter_backward_search): likewise. + (_wrap_gtk_selection_data_set): use pygdk_atom_from_pyobject. + (_wrap_gtk_selection_add_targets): likewise. + + * gtk/pygtk-private.h (pygdk_atom_from_pyobject): added + declaration. + + * gtk/gtk.defs (GtkTextIter.forward_search): use new flags enum + (GtkTextIter.backward_search): likewise. + + * gtk/gdk.override (_wrap_gdk_gc_new_with_values): + s/GPOINTER_TO_INT/GDK_POINTER_TO_ATOM/ + (_wrap_gdk_property_get): use pygdk_atom_from_pyobject + (_wrap_gdk_property_change): likewise. + + * codegen/argtypes.py (AtomArg.write_param): use + pygdk_atom_from_pyobject when getting atom args + + * gtk/gtk-types.defs (TextSearchFlags): added new enum. + + * gtk/gtk-types.c (pygdk_atom_from_pyobject): implemented a + function to get a GdkAtom from a Python object + (PyGdkWindow_PropertyGet): use pygdk_atom_from_pyobject to get + atoms from args, not this two-try ParseTuple. + (PyGdkWindow_PropertyChange): likewise. + (PyGdkWindow_PropertyDelete): likewise. + + * gtk/gdk-types.defs (Selection): removed, no longer an enum + (Target): Likewise. + (SelectionType): Likewise. + +2001-10-22 Matt Wilson <msw@redhat.com> + + * gtk/gtk-types.c (pygdk_atom_number): remove numeric bits, + GdkAtom is now opaque. + + * gtk/gtk.defs (GtkTreeModelSort.set_model): removed, is static now. + (GtkTreeModelSort.convert_path): rename to + GtkTreeMOdelSort.convert_path_to_child_path + +2001-10-19 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_tree_model_iter_children): override + GtkTreeModel.iter_children(parent) to return a new iter, like + GtkTreeModel.get_iter_root(). + +2001-10-18 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (pixbuf_new_from_inline): rename from + pixbuf_new_from_stream to match gdk-pixbuf changes in CVS. + + * pygtk.spec.in (%files devel): get header from new location + + * Makefile.am (pkgincludedir): put pygobject.h in + $(includedir)/pygtk-2.0, not $(includedir)/pygtk-2.0/pygtk + +2001-10-16 Matt Wilson <msw@redhat.com> + + * codegen/h2def.py (define_func): convert all argument type + whitespace to '-'. + +2001-10-15 Matt Wilson <msw@redhat.com> + + * pygtk-2.0.pc.in (pygtkincludedir): move headers to a + version-specific directory so we can have old pygtk-devel and + pygtk2-devel installed at the same time. + + * Makefile.am (pkgincludedir): likewise + + * gtk/Makefile.am (pkgincludedir): likewise + + * pygtk.spec.in (%files devel): pick up the new header location + +2001-10-11 Matt Wilson <msw@redhat.com> + + * pygtk.spec.in (%files devel): fixed typo in devel filelist + (header) added macro that tests to see if we have libglade2 + (%files libglade) make the filelist a condition of that + (Name) changed name to 'pygtk2' to avoid name conflict with pygtk + +2001-10-11 Murray Cumming <murrayc@usa.net> + + * h2def.py: Now it doesn't stop when it finds a function parameter + with a type but no name. The resulting define-* will be missing + that parameter, but at least the rest will have succeeded. + +2001-10-10 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c (pygobject_dealloc): also go set up the reflist + if we're doing refcount debugging. + +2001-10-11 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_dealloc): if we are saving a + reference to the wrapper during dealloc (which is probably bad), + check if it is a heap type, and if so, incref its type, so that + subtype_dealloc() doesn't decref the type out from under us. This + problem was tracked down by Matt Wilson + +2001-10-09 James Henstridge <james@daa.com.au> + + * gtk/gtk-extrafuncs.defs (GenericTreeModel): fix up c-name. + + * examples/pygtk-demo/demos/treemodel.py (MyTreeModel): subclass + from gtk.GenericTreeModel. + + * pygtk.spec.in (Requires): add new files to spec file. + +2001-10-09 James Henstridge <james@daa.com.au> + + * pango-types.defs: move types. + + * gtk/Makefile.am: modify rules to take into account splitting out + the type definitions. --register arguments now only parse the + type defs and not the function defs, which should speed up the + build a bit. + + * gtk/gdk-types.defs: same here. + + * gtk/gtk.defs: and include gtk-types.defs here. + + * gtk/gtk-types.defs: move + define-{object,interface,enum,flags,boxed} defs to this file. + + * gtk/gtk-extrafuncs.defs (get_selection): and add it back here. + + * gtk/gtk.defs: remove gtk_list_get_selection function from this + file. + + * gtk/gtk-extrafuncs.defs (pygtk_generic_tree_model_new): similar + changes here. + + * gtk/pygtktreemodel.c: same changes here. + + * gtk/pygtktreemodel.h (pygtk_generic_tree_model_get_type): rename + to PyGtkGenericTreeModel, so that short name doesn't collide with + GtkTreeModel. + +2001-10-08 Matt Wilson <msw@redhat.com> + + * pygtk.spec.in: added specfile template + + * configure.in (AC_CONFIG_FILES): add pygtk.spec + + * Makefile.am (dist-hook): copy the spec file into the dist dest + dir + + * gtk/gtk.defs (ColorSelectionDialog): added colorsel, ok_button, + cancel_button, and help_button fields. + (GtkList.get_selection): marked as a PyGTK extension. + +2001-10-08 James Henstridge <james@daa.com.au> + + * pango.defs (pango_font_metrics_new): comment out, as it is only + for use by engines. + + * gtk/libglade.override: same here. + + * gtk/gdk.override: same here. + + * gtk/gtk.override: use import section here. + + * pango.override: use the new import stuff to get the reference to + the GObject type. + + * codegen/codegen.py (write_source): write out code based on the + import statements in the overrides file. Most modules have some + code like this, and this helps reduce the boilerplate code that + needs to be entered in. + + * codegen/override.py (Overrides.get_imports): add handlers for + "import" sections of the overrides file, which are used to get + references to the types in other modules. + +2001-10-06 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_list__get_selection): remove unused + variable (the line number on the gcc warning matched exactly!) + + * codegen/codegen.py (write_source): reset line numbering after + writing headers and init overrides. + (main): add --outfilename argument, for specifying the final name + of the file -- output is not written to this file. If argument is + not passed, derive from defs filename. + + * codegen/override.py (Overrides.__parse_override): add #line + outputs for headers and init type overrides. + + * codegen/codegen.py (main): pass the filename to overrides. + (FileOutput): wrapper class for file objects to keep track of line + numbers, so that #line statements can be written. + (write_class): write out #line statements for overriden + constructor and methods. + (write_getsets): write #line's for getsets. + (write_interface): write #line's for methods. + (write_boxed): write #line's for constructor and methods. + + * codegen/override.py (Overrides.__init__): rewrite the code that + reads in the overrides file, so it only splits on lines with only + '%%' in them. Also keep track of line numbers, so we know where + each section starts. + (Overrides.__parse_override): save the start line for 'override' + sections and 'override-attr' sections. + (Overrides.getstartline): new function to retrieve the start line + for a .overrides section. + (Overrides.__init__): take the filename rather than file handle as + argument. + +2001-10-05 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_list__get_selection): implemented + function to return the selection. + (_wrap_gtk_list_get_selection): use above to implement a method + for getting the selection, like old pygtk. + + * gtk/gtk.defs (GtkList.get_selection): added function to be + compatible with previous versions. + (GtkList): added "selection" field + + * gobjectmodule.c (pyg_closure_new): too many tuples. + +2001-10-05 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c (pygobject_emit): mask out + G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission. + +2001-10-05 Johan Dahlin <zilch.am@home.se> + + * gobjectmodule.c (pyg_closure_new): Handle non-Tuple parameters. + + * gtk/gtk.override (_wrap_gtk_window_list_toplevels): Bound + (_wrap_gtk_toolbar_insert_stock): Bound. + + * gtk/gtk.defs (binding_entry_clear): rename from + gtk_bindings_entry_clear + (color_selection_palette_from_string): rename from + gtk_color_selection_palette_from_string + (set_border_width): Added + (set_resize_mode): Added + (get_children): Added + (children): Mark as deprecated + (get_focus_chain): Added + (get_focus_vadjustment): Added + (get_focus_hadjustment): Added + (gtk_container_add_child_arg_type): Removed + (gtk_container_query_child_args): Removed + (gtk_containerchild_getv): Removed + (gtk_container_child_setv): Removed + (gtk_container_add_with_args): Removed + (gtk_container_addv): Removed + (gtk_container_add_set): Removed + (gtk_container_add_get): Removed + (GtkContainer.child_set): Added + (GtkContainer.child_get): Added + (gtk_container_child_args_collect): Removed + (gtk_container_child_arg_get_info): Removed + (GtkDrawingArea.size): Mark as deprecated + (GtkEditable.get_editable): Added + (GtkEntry.new_with_max_length): Mark as deprecated + (GtkEntry.get_visibility): Added + (GtkEntry.get_invisible_char): Added + (GtkEntry.get_max_length): Added + (GtkFontSelection.get_font): Mark as deprecated + (GtkFontSelectionDialog.get_font): Mark as deprecated + (GtkFrame.get_label_widget): Added + (GtkFrame.get_label_align): Added + (GtkFrame.get_shadow_type): Added + (GtkGC.gc_get): Added + (gtk.gc_release): Rename from gtk_gc_release + (GtkHandleBox.get_shadow_type): Added + (GtkHandleBox.get_handle_position): Added + (GtkHandleBox.get_snap_edge): Added + (GtkHscale.new_with_range): Added + (GtkLayout.freeze): Mark as deprecated + (GtkLayout.thaw): Mark as deprecated + (GtkListStore.new): Fix parameters + (GtkListStore.newv): Added (needed?) + (GtkListStore.set): Added + (GtkListStore.clear): Added + (gtk_init_abi_check): Remove + (gtk_init_check_abi_check): Remove + (gtk_exit): Remove + (gtk.get_current_event_state): Added + (GtkMenu.get_tearoff_state): Added + (GtkMenu.get_title): Added + (gtk_rc_*): Rename to rc_* + (GtkToolbar.insert_stock): Added + (GtkToolbar.set_icon_size): Added + (GtkToolbar.unset_style): Added + (GtkToolbar.unset_icon_size): Added + (GtkToolbar.get_orientation): Added + (GtkToolbar.get_style): Added + (GtkToolbar.get_icon_size): Added + (GtkToolbar.get_tooltips): Added + (gtk_type_unique): Remove + (gtk_type_class): Remove + (gtk_type_new): Remove + (gtk_enum_get_values): Remove + (gtk_flags_get_values): Remove + (gtk_enum_find_value): Remove + (gtk_flags_find_value): Remove + (GtkViewport.get_shadow_type): Added + (GtkVscale.new_with_range): Added + +2001-10-05 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): fixed + argument format string. + +2001-10-03 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (Rectangle): added definition for GdkRectangle + +2001-10-04 Matthew Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_toolbar_append_item): make user_data + optional + + * gtk/gtk.defs (GtkToolbar.append_item): make user_data optional + +2001-10-04 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_item_factory_create_items): fixed + non-compiling function. + +2001-10-04 Johan Dahlin <zilch.am@home.se> + + * gtk/gtk.override (_wrap_gtk_item_factory_create_items): Modify + ParseTuple to accept 6 argument, so we can use stock icons and gdkpixbufs. + (_wrap_gtk_spin_button_get_range): Bound. + (_wrap_gtk_spin_button_get_increments): Bound. + + * gtk/gtk.defs: rename gtk.gtk_* gtk.*. + +2001-10-04 James Henstridge <james@daa.com.au> + + * pygtk.spec: spec file changes. + + * gtk/gtk.defs (AccelGroup): this is an object now -- not a boxed. + +2001-10-03 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c (pygobject_repr): tweak the repr such that + calling it on an uninitialized PyGObject won't segfault. Also + print the python class name. + +2001-10-02 Johan Dahlin <zilch.am@home.se> + + * gtk/gdk.override (_wrap_gdk_color_parse): Added. + + * gtk/gtk.override (_wrap_gtk_label_get_selection_bounds): + (_wrap_gtk_label_get_layout_offsets): + (_wrap_gtk_button_box_get_child_size): + (_wrap_gtk_button_box_get_child_ipadding): Added. + + * gtk/gtk.defs + GtkAccelGroup.activate, attach, detach, groups_activate, add, + remove: + s/GtkObject/GObject/ + (gtk_adjustment_new) (GtkAdjustment.clamp_page): s/gfloat/gdouble/ + (GtkAdjustment.get_value): Added + (GtkBin.get_child): Added + (GtkBox.get_homogeneous): Added + (GtkCellRenderer.event): Removed + (GtkCellRenderer.activate): Added + (GtkCellRenderer.start_editing): Added + (GtkCellRenderer.set_fixed_size): Added + (GtkCellRenderer.get_fixed_size): Added + (GtkCheckMenuItem.get_activate): Added + (gtk_color_selection_get_type): Added + (gtk_color_selection_new): Added + Removed old functions from gtkbindings.h. + +2001-10-02 Matt Wilson <msw@redhat.com> + + * gtk/gdk.defs (gdk.screen_width): bound + (gdk.screen_height): bound + (gdk.screen_width_mm): bound + (gdk.screen_height_mm): bound + (gdk.flush): bound + (gdk.beep): bound + (gdk.set_double_click_time): bound + (gdk.gdk_window_get_toplevels): renamed to window_get_toplevels + (gdk.get_default_root_window): bound + (gdk.gdk_color_parse): renamed to color_parse + (gdk.gdk_drag_context_get_type): renamed to drag_context_get_type + (gdk.gdk_drag_context_new): renamed to drag_context_new + (gdk.gdk_gc_new): renamed to gc_new + (gdk.gdk_image_new_bitmap): renamed to image_new_bitmap + (gdk.gdk_device_get_type): renamed to device_get_type + (gdk.gdk_devices_list): renamed to devices_list + (gdk.device_free_history): renamed to device_free_history + (gdk.gdk_rgb_xpixel_from_rgb): renamed to rgb_xpixel_from_rgb + (gdk.gdk_rgb_gc_set_foreground): renamed to rgb_gc_set_foreground + (gdk.rgb_gc_set_background): renamed to rgb_gc_set_background + + * gobjectmodule.c (pygobject_dealloc): remove debugging message + James checked in. + + * gtk/gtk.override (_wrap_gtk_text_buffer_set_text): override + GtkBuffer.set_text so that you don't have to pass in the length. + + * codegen/argtypes.py (FlagsArg.write_param): preserve flags that + have a default value by short circuiting the conversion of NULL + Python flags to 0. + + * gobjectmodule.c (pyg_object_new): rewrote function to use + g_object_newv and instantiate the object after we check to make + sure the class handles all the properties passed. This solves the + problem of trying to destroy a GtkObject after creating it, which + can be a little tricky. + +2001-10-02 Matt Wilson <msw@redhat.com> + + * gobjectmodule.c (pyg_object_new): added a new gobject.new + function to create an object of any registered type with kwargs + property setting. + +2001-10-02 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_new): fix bug where we were INCREFing + the saved widget even in the hasref case (where we should be + passing ownership of the last reference). + +2001-10-02 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_clist_new_with_titles): accept unicode + objects as well. + (_wrap_gtk_clist_prepend): likewise + (_wrap_gtk_clist_append): likewise + (_wrap_gtk_clist_insert): likewise + (_wrap_gtk_combo_set_popdown_strings): likewise + (_wrap_gtk_ctree_new_with_titles): likewise + (_wrap_gtk_ctree_insert_node): likewise + +2001-10-02 Johan Dahlin <zilch.am@home.se> + + * gtk/gtk.defs: Added + GtkAccelLabel: get_accel_object, set_accel_object. + GtkButton: set_label, get_label, set_use_underline, + get_use_underline, set_use_stock, get_use_stock. + GtkLabel: get_attributes, set_label, get_label, set_use_markup, + get_use_markup, set_use_underline, get_use_underline, + get_justify + GtkRadioButton: get_group + GtkSpinButton: get_digits, get_increments, get_range, + get_update_policy, get_numeric, get_wrap, + get_snap_to_tickets, get_mode + +2001-10-01 Matt Wilson <msw@redhat.com> + + * codegen/codegen.py (write_boxed_getattr): added code to write + out __members__ attribute so that dir(foo) works on boxed types + +2001-10-01 Matthew Wilson <msw@redhat.com> + + * examples/pygtk-demo/demos/treemodel.py + (MyTreeModel.on_get_column_type): use gobject.TYPE_STRING instead + of hard coded values + +2001-09-30 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_dealloc): use plain old + PyObject_GC_Del, as the overridden tp_free seems to ignore the GC + header. + (pygobject_new): GC track wrappers created through pygobject_new. + + * configure.in: increment version number, and require gtk 1.3.9 + (we already required it before). + + * gobjectmodule.c (pygobject_new): initialise extra members. + Problem found by msw. + +2001-09-29 Matthew Wilson <msw@redhat.com> + + * examples/pygtk-demo/demos/dnd.py: port to new namespace + +2001-09-29 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_param_spec_new): add a wrapper for a + GParamSpec. Currently it only exposes the base parameter info; + none of the extra info provided by derived param specs. + (pyg_object_class_list_properties): return a list of GParamSpec + objects, rather than just strings. + (pyg_value_as_pyobject): catch NULL strings. + + * configure.in (minver): require 2.2a4. + + * gtk/pygtktreemodel.c (pygtk_tree_model_get_column_type): use + pyg_type_from_object instead. Based on patch from Elliot. + + * gtk/gtk.override (_wrap_gtk_selection_data__get_data): convert + getter to a function to match codegen changes. + + * : merge in python22-branch (see changelog entries below). + +2001-09-25 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_get_dict): getter for __dict__ on + GObject wrappers. + (PyGObject_Type): include getsets list. + + * codegen/codegen.py (write_getsets): change "struct getsets" to + PyGetSetDef to match recent changes in python. + + * gtk/gdk.override (_wrap_gdk_device__get_axes): change to getter. + (_wrap_gdk_device__get_keys): turn into a getter. + (_wrap_gdk_drag_context__get_targets): same here. + + * gtk/gtk.override (_wrap_gtk_clist__get_selection): turn into a + getter. + (_wrap_gtk_ctree__get_selection): turn into a getter. + + * codegen/codegen.py (write_getsets): rename to write_getsets, and + don't allow overriding the whole routine, as it is implemented as + a number of smaller routines now. + (gettertmpl): rename from getattrtmpl. Refactor for handling + single attribute. + (write_getsets): finish conversion over to using getsets. + (write_class): call write_getsets instead. + (typetmpl): substitute %(getsets)s rather than %(getattr)s. + +2001-09-23 James Henstridge <james@daa.com.au> + + * gtk/__init__.py: don't import ExtensionClass. + + * gobjectmodule.c (object_gc_free): new function to free an GC + managed object. + (PyGObject_Type): use object_gc_free for the tp_free slot. + + * codegen/codegen.py (write_class): don't write getattr routine. + This is a temporary hack to see if things work. + + * gobjectmodule.c (pygobject_dealloc): handle case of destruction + when self->obj == NULL. + + * gtk/gtk.override (_wrap_gtk_clist_new_with_titles): return an + int. + (_wrap_gtk_tree_view_get_path_at_pos): same here. + (_wrap_gtk_button_new): same here. + (_wrap_gtk_toggle_button_new): same here. + (_wrap_gtk_check_button_new): same here. + (_wrap_gtk_radio_button_new): same here. + (_wrap_gtk_list_item_new): same here. + (_wrap_gtk_menu_item_new): same here. + (_wrap_gtk_check_menu_item_new): same here. + (_wrap_gtk_radio_menu_item_new): same here. + (_wrap_gtk_ctree_new_with_titles): same here. + (_wrap_gtk_dialog_new_with_buttons): same here. + (_wrap_gtk_message_dialog_new): same here. + (_wrap_gtk_message_dialog_new): same here. + + * gtk/gdk.override (_wrap_gdk_cursor_new): return an int. + + * pango.override (_wrap_pango_font_description_new): constructors + return ints. + + * codegen/codegen.py (write_constructor): small hack to convert + "return NULL;" to "return -1;" in constructors, as they should + return ints. + (write_boxed_constructor): same here. + +2001-09-22 James Henstridge <james@daa.com.au> + + * gtk/pygtk.h: remove traces of ExtensionClass. + + * gtk/libglade.override: s/PyExtensionClass/PyTypeObject/. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): get rid of + mentions of ExtensionClass. + + * gtk/gdk.override: s/PyExtensionClass/PyTypeObject/. + + * gtk/gtk.override: s/PyExtensionClass/PyTypeObject/. + + * gobjectmodule.c (pygobject_traverse): implement a traverse + function for PyGObject. + (PyGObject_Type): add GC support. + (object_free): use PyObject_GC_Del to delete the memory. + (pygobject_dealloc): stop GC tracking the object here. + (pygobject_register_class): set a few more type fields here. + (pygobject_new): use PyObject_GC_New to allocate the object here. + (pygobject_dealloc): readd the 1-1 object/wrapper hack. It should + work as expected since adding GC support. + + * pango.override: s/PyExtensionClass/PyTypeObject/ + + * codegen/codegen.py (consttmpl): constructor template returns an + int. + (noconstructor): return int rather than PyObject. + (typetmpl): change def to be a PyTypeObject, with extra fields. + (interfacetypetmpl): same here. + (boxedconsttmpl): return int rather than pyobject. + (boxedtmpl): change def to PyTypeObject. + (write_class): put the constructor in the right place. + (write_boxed): put the constructor in the right place. + (write_source): don't include ExtensionClass.h, forward declare + type objects as PyTypeObjects, rather than PyExtensionClasses. + + * gobjectmodule.c (pygobject_register_class): set type->ob_type. + (pyg_register_boxed): same here. + (pyg_register_interface): same here. + (initgobject): set the ob_type member of PyGInterface_Type and + PyGBoxed_Type. + (pygobject__gobject_init__): add __gobject_init__ method, that + just calls pygobject_init. + (pygobject_methods): readd __gobject_init__ method. + +2001-09-21 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_register_class): convert to use + PyTypeObjects instead of ExtensionClass. + (pygobject_new): don't need to set inst_dict. Python takes care + of that for us. + (pyg_register_boxed): convert to 2.2. + (pyg_boxed_new): convert to 2.2. + (pyg_value_from_pyobject): get rid of ExtensionClass calls. + (pygobject_init): convert to 2.2. + + * pygobject.h: don't include ExtensionClass.h + + * configure.in (AM_PATH_PYTHON): require python 2.2. + + * Makefile.am: remove ExtensionClass. + +2001-09-28 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (gtk_progress_bar_new_with_adjustment): mark as + constructor + + * gtk/gtk.override (_wrap_gtk_progress_bar_new_with_adjustment): + override constructor for ProgressBar to optionally take adjustment + +2001-09-27 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (GtkTreeView.set_cursor): added new parameters. + + * gtk/pygtk-private.h: removed old PyGtkCTreeNode code, move to + generic generated code. + + * gtk/gtkmodule.c (_PyGtk_FunctionStruct): likewise + + * gtk/pygtk.h: likewise. + + * gtk/gtk-types.c: likewise. + + * gtk/gtk.override (_wrap_gtk_tree_store_get_root_iter): moved to + gtk_tree_model_get_iter_root. + (_wrap_gtk_ctree_node_from_cobject): removed + (_wrap_gtk_ctree_node_getattr): moved gtk-types.c getattr code to + generic boxed interface and placed here. + (_wrap_gtk_ctree_*): migrated to generic PyGBoxed for GtkCTreeNodes + +2001-09-26 Matt Wilson <msw@redhat.com> + + * gtk/gtkmodule.c (_PyGtk_FunctionStruct): removed PyGtkCTreeNode + functions + + * codegen/argtypes.py: remove GtkCTreeNode custom registration + + * gtk/gtk.defs (GtkContainer.queue_resize): remove, use + gtk_widget_queue_resize instead of gtk_container_queue_resize + (GtkContainer.child_composite_name): remove, this is private + (GtkContainer.clear_resize_widgets): likewise + (GtkTreeViewColumn.set_cell_renderer): remove, use + GtkTreeViewColumn.pack_start instead + (CTreeNode): added CTreeNode boxed definition + + * gtk/gtk.override (_wrap_gtk_tree_view_column_new): changed from + gtk_tree_view_column_set_renderer to gtk_tree_view_column_pack_start. + +2001-09-25 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (get_has_resize_grip): bound + (set_has_resize_grip): bound + +2001-09-24 Matt Wilson <msw@redhat.com> + + * gtk/gdk.override (_wrap_gdk_pixbuf_render_pixmap_and_mask): + implemented GdkPixbuf.render_pixmap_and_mask. + + * gtk/gdk.defs (GdkPixbuf.render_pixmap_and_mask): set + alpha_threshold default to 127 + + * gtk/gtk.override (ignore): added gtk_entry_new to the big list + of ignores. + + * gtk/gtk.defs (gtk_entry_new_with_max_length): bound + (GtkCList.set_pixmap): default mask to NULL + +2001-09-24 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (gtk_adjustment_new): added defaults to match + previous version, changed step_increment to step_incr and + page_increment to page_incr to match previous version. + (gtk_table_new): added defaults to match previous version. + +2001-09-22 Matthew Wilson <msw@redhat.com> + + * gtk/gtk.defs (ctree_node_from_cobject): added binding. + + * gtk/gtk.override (_wrap_gtk_ctree_node_from_cobject): added a + function to turn a PyCObject into a PyCListNodeObject object. + This is a hack until GtkCTreeNode becomes a boxed type. + +2001-09-21 Matthew Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_ctree_new_with_titles): use the same + defaults as previous versions, make count and tree_column optional + (_wrap_gtk_clist_new_with_titles): likewise + +2001-09-21 Matt Wilson <msw@redhat.com> + + * codegen/argtypes.py (BoxedArg.write_return): handle returning + both a pointer to a boxed type and a boxed type itself + (ArgMatcher.register_boxed): register both pointers to boxed types + and boxed types themselves + + * gtk/gtk.defs (Style): add "black" and "white" fields. More to + do here later. + + * gtk/gtk.override (_wrap_gtk_radio_button_new): use + new_from_widget, not the group->group member when creating a new + button in a group. + +2001-09-20 James Henstridge <james@daa.com.au> + + * pango.defs (FontMetrics): uncomment this now it has a boxed type. + + * gtk/Makefile.am (EXTRA_DIST): add gdk.override to dist. + + * configure.in: update version number. + + * pygobject.h (_PyGObject_Functions.newgobj): rename from new, so + that the header is includable in C++ programs. + +2001-09-19 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (gtk_message_dialog_new): define defaults + + * gtk/gtk.override (_wrap_gtk_message_dialog_new): override this + function so we can use "%s" as the format string and pass the + entire last argument as a string securely. + +2001-09-19 James Henstridge <james@daa.com.au> + + * pango.defs: update for newer Pango API. + +2001-09-19 James Henstridge <james@daa.com.au> + + * pango.defs (FontDescription): remove fields from + PangoFontDescription, as it is an opaque type now. + + * configure.in (ACLOCAL): require glib 1.3.8, pango 0.19 and gtk+ + 1.3.8. + +2001-09-18 Matt Wilson <msw@redhat.com> + + * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): add a cast + in pointer comparison to squelch compiler warning. + +2001-09-18 Matt Wilson <msw@redhat.com> + + * gtk/gtk.defs (gtk_dialog_new_with_buttons): note the defaults in + the definition. + + * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): implement + a full-featured constructor for GtkDialog that will allow flags + (as well as other parameters) to be passed in during object + construction. The form is a bit different than the C version, + which uses varargs. To pass a list of buttons at construction + time, pass a tuple of text/id pairs as the 4th argument or in the + buttons keyword. + + * gtk/gtk.defs (CTree): add selection to the fields + (GtkCTree::insert_node): note the defaults in the definition. + (GtkCTree::base_nodes): added base_nodes method back into GtkCTree + + * gtk/gtk.override (_wrap_gtk_ctree_insert_node): only require the + first three parameters and use the defaults from previous versions + for all the other values. + (override-attr GtkCTree.selection): implementation for getting the + selection of a CTree + (_wrap_gtk_ctree_base_nodes): ported old base_nodes method to new + binding. + + * gtk/gtk.defs (CList): add columns and selection to the fields + + * gtk/gtk.override (GtkCList.selection): implementation for + getting the selection of a CList + +2001-09-18 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_object_class_list_properties): rename to + gobject.list_properties. + +2001-09-18 Matt Wilson <msw@redhat.com> + + * examples/pygtk-demo/demos/treemodel.py: fixed to work with new + namespace + + * gtk/gdk.defs (pixbuf_new_from_file): don't defined + gdk_pixbuf_new_from_file as a constructor of GdkPixbuf. Define it + as pixbuf_new_from_file to match pixbuf_new_from_stream. + + * gtk/gtk.defs (gtk_aspect_frame_new): add defaults to match old + behavior + (gtk_alignment_new): likewise + (GtkCTree::construct): likewise + (gtk_clist_new): likewise + (gtk_clist_new_with_titles): likewise + (gtk_ctree_new): likewise + (gtk_ctree_new_with_titles): likewise + (GtkImage::construct): use gtk_image_new to construct GtkImages - + this allows us to use more than just pixmaps to create them. + (gtk_image_new): new definition. + +2001-09-18 James Henstridge <james@daa.com.au> + + * pygobject.h (pyg_type_wrapper_new): export this function. + + * codegen/argtypes.py (GTypeArg.write_return): wrap GType return + values as PyGTypeWrappers rather than ints. + + * codegen/codegen.py (write_source): pass the typecode macros to + pygobject_register_class and pyg_register_interface rather than + references to the get_type functions. + + * pygobject.h (_PyGObject_Functions): fix up prototypes. + + * gobjectmodule.c (check_bases): check if the base class is an + extensionclass before poking around in class->bases. + (pyg_type_*): don't bother storing the _get_type() function for + lazy initialisation. Instead, just store the GType. Also, remove + code for coercing them into numbers. + (pygobject_register_class): take the type, rather that get_type + routine as an argument. + (pyg_register_interface): same here. + (pyg_type_from_object): don't accept types that convert to ints as + being equivalent to GTypes. + (pyg_register_boxed): set the __gtype__ attribute to a + PyGTypeWrapper. + (pyg_type_register): set __gtype__ to a PyGTypeWrapper. + (pyg_type_name): use pyg_type_from_name + (pyg_type_from_name): return a PyGTypeWrapper object. + (pyg_type_parent): update. + (pyg_type_is_a): update. + (pyg_type_children): update. + (pyg_type_interfaces): update. + (initgobject): set __gtype__ attributes to PyGTypeWrapper objects. + (initgobject): make type constants PyGTypeWrapper objects. + +2001-09-17 James Henstridge <james@daa.com.au> + + * gtk/gdk.override: don't #define these types to G_TYPE_INVALID, + as they are now valid. + + * gtk/gdk.defs: remove the FrameAction enum -- it is private to + the GIF loader module. + +2001-09-16 James Henstridge <james@daa.com.au> + + * gtk/Makefile.am (pygtk_PYTHON): install keysyms.py and not GDK.py + + * gtk/__init__.py: import keysyms, rather than GDK.py + + * gtk/gtk.defs: add missing enums. + + * gtk/gdk.defs: add missing enums. + + * gtk/GDK.py: remove this file. + + * gtk/keysyms.py: put all keysyms here. + +2001-09-15 James Henstridge <james@daa.com.au> + + * gtk/libglademodule.c (initglade): fix name of init function. + + * codegen/codegen.py (write_enums): don't write out the + add_constants fucntion if there are no enums/flags. + + * gtk/libglade.override (connect_many): fix small bug in + connection function. + + * gtk/Makefile.am (pygtk_PYTHON): don't install the GTK.py header. + (glademodule_la_SOURCES): rename the libglade module to gtk.glade. + + * pygtk.spec: update spec file, and add -devel sub package. + + * configure.in: use AC_HELP_STRING to format help strings, update + version number. + + * acinclude.m4: remove the AM_PATH_PYTHON macro, as it is in + automake 1.5. + + * Makefile.am: require automake 1.5 to build. + +2001-09-15 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_enum_add_constants): allow '_' as start of + constant name. + (pyg_flags_add_constants): same here. + + * gtk/__init__.py (TRUE): don't import GTK. + + * gtk/gtkmodule.c (init_gtk): same here. + + * pangomodule.c (initpango): add constants to the pango module. + + * codegen/codegen.py (write_enums): new function that writes a + function to add constants for all the enums and flags in the + parser. + (write_source): call write_enums(). + + * gtk/gtkmodule.c (init_gtk): add test use of add_constants. + + * pygobject.h (_PyGObject_Functions): add new functions to header. + + * gobjectmodule.c (pyg_enum_add_constants): new function for + adding constants to a module dictionary from a particular GType. + (pyg_flags_add_constants): similar for flag types. + (functions): add to export function vtable. + +2001-09-14 James Henstridge <james@daa.com.au> + + * pygtk-2.0.pc.in (defsdir): fix up defsdir definition. + + * Makefile.am (pkginclude_HEADERS): install ExtensionClass.h + header (this can go when we switch over to python2.2 type/class + stuff. + + * pygobject.h (pyg_register_boxed_custom): same change. + + * gobjectmodule.c (pyg_register_boxed_custom): rename from + pyg_boxed_register to avoid confusion. + +2001-09-14 James Henstridge <james@daa.com.au> + + merge from short-class-names-branch + +2001-09-12 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (write_class, write_interface): set the short + name as the class name here. + + * gobjectmodule.c (pygobject_register_class): pass ec->tp_name as + the name for the class passed to PyExtensionClass_Export*. + + * codegen/codegen.py (write_source): pass the C name to + pygobject_register_class again. + +2001-09-11 James Henstridge <james@daa.com.au> + + * gtk/__init__.py (create_pixmap): few fixups to get things to + import correctly. + + * gtk/gtkmodule.c (init_gtk): there is no _pygdk_register_boxed(). + + * gtk/libglade.override (init): same here. + + * gtk/gtk.override (init): same here. + + * gtk/gdk.override (init): use short class names here. + + * gtk/gtkmodule.c (init_gtk): initialise both the gtk._gtk and + gtk.gdk modules. + + * gtk/gtk.defs: don't include gdk.defs + + * gtk/gtk.override: remove all GDK override wrappers. + + * gtk/gdk.override: new file taking the overrides for GDK + functions. + + * codegen/codegen.py (write_source): register only the short name + of the GObject, interface or boxed type. + +2001-09-13 Johan Dahlin <zilch.am@home.se> + + * gtk/gtk.defs (CellRendererTextPixbuf): removed. + (gtk_cell_renderer_text_pixbuf_get_type): removed. + (gtk_cell_renderer_text_pixbuf_new): removed. + (gtk_cell_renderer_text_iter_spew): removed. + (row_changed): Renamed. + (row_inserted): Renamed. + (row_has_child_toggled): Renamed. + (row_deleted): Renamed. + (rows_reordered): Renamed, and fixed. + (set_fixed_width): Renamed. + (get_fixed_width): Added. + + * gobjectmodule.c (initgobject): Adjust + g_boxed_type_register_static to compile under latest cvs. + +2001-09-10 Johan Dahlin <zilch.am@home.se> + + * autogen.sh: add check and usage for AUTOMAKE and ACLOCAL. + +2001-09-06 James Henstridge <james@daa.com.au> + + * gtk/GTK.py: fix up enums. + + * gobjectmodule.c (pyg_closure_marshal): if return_value is NULL, + don't set it. + (pyg_signal_class_closure_marshal): same here. + + * gtk/gtk.defs: various updates to make it compile. + + * gtk/gtk-types.c (pygdk_atom_str): fallback to returning the repr + of the atom if we can't resolve its name, rather than returning + NULL. Patch from Skip. + + * gobjectmodule.c (pyg_value_from_pyobject): look at the + fundamental type in this function so we can use a switch statement + that catches the fundamental types easily, reducing the number of + type checks. + (pyg_value_as_pyobject): similar here. Also handle boolean types + using patch from Skip. + + * gtk/GDK.py: add extra constants from Skip. + +2001-08-23 James Henstridge <james@daa.com.au> + + * configure.in (build_libglade): add forth argument to + PKG_CHECK_MODULES call so that configure doesn't die a horrible + death when it can't find libglade. + +2001-08-22 James Henstridge <james@daa.com.au> + + * gtk/libglade.override: add signal connection function overrieds. + + * pygtk-2.0.pc.in: add a pkg-config data file that contains some + information about how to link other wrapper modules, and where + pygtk installs its defs files. + +2001-08-21 James Henstridge <james@daa.com.au> + + * configure.in (build_libglade): add checks for libglade. + + * gtk/libglade*: add the libglade module to the build + + * configure.in: update for autoconf 2.52 + + * gtk/gtk.defs: make GtkAccelGroup a GObject rather than a boxed + type. remove the gtk_tree_model_get_first function. + +2001-07-09 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (initgobject): add a gobject.TYPE_PYOBJECT + constant for the PyObject boxed typecode. + +2001-07-08 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_signal_new): fix argument type for + return_type. + (initgobject): register a "PyObject" boxed type with glib.. + (pyg_value_from_pyobject): if the value holds a PY_TYPE_OBJECT, + set the value directly. + (pyg_value_as_pyobject): special case the PY_TYPE_OBJECT case + again. + + * gtk/gdk.defs, gtk/gtk-extrafuncs.defs, gtk/gtk.defs: update to + new format. + + * pango.defs: update to new format. + + * codegen/codegen.py: various fixes to make it work with the new + defs format. + + * codegen/argtypes.py (ObjectArg.__init__): take the typecode as + an argument, and use it to deduce the cast macro (s/_TYPE_/_/). + (BoxedArg.__init__): take typecode as argument explicitly. + (EnumArg.__init__): take typecode as argument explicitly. + (FlagsArg.__init__): take typecode as argument explicitly. + (ArgMatcher.register_enum): pass typecode argument. + (ArgMatcher.register_flag): same here. + (ArgMatcher.register_object): same here. + (ArgMatcher.register_boxed): same here. + + * codegen/definitions.py (ObjectDef): update parser for new format. + (InterfaceDef): same here. + (EnumDef): same here. + (BoxedDef): same here. + (MethodDef): same here. + (FunctionDef): same here. + + * codegen/defsparser.py (DefsParser): add define- prefix to the + defs we look for. + + * codegen/defsconvert.py (convert): new program to convert v2 defs + to v3 defs. It will probably only work with files in the style + created by the h2def.py program. + +2001-07-07 James Henstridge <james@daa.com.au> + + * codegen/h2def.py (to_upper_str): add function to convert a type + name to upper case with underscores using the same algorithm as + gtk+ (with an extra rule to catch cases like GObject. + (typecode): function to create a typecode like GTK_TYPE_WIDGET + from the type name. + (write_obj_defs): output v3 defs. + (write_enum_defs): output v3 defs. + (define_func): replace 'G_CONST_RETURN ' to 'const-' for return + value. + (write_func): output v3 defs. + + * codegen/scmexpr.py (parse): make the parser ignore single + quotes, which are used in the new defs format. + +2001-07-03 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_list_store_new): fix up function + call. + (_wrap_gtk_tree_store_new): fix up function call. + + * configure.in (AC_OUTPUT): add pygtk-codegen-2.0 to list of files + to be processed. + + * codegen/codegen.py (register_types): fix typo s/parser/defsparser/ + + * gtk/Makefile.am ($(srcdir)/gtk.c): register types from + pango.defs. + + * gtk/gtk.override (init): import the PangoContext and PangoLayout + classes from the pango module. + +2001-07-02 James Henstridge <james@daa.com.au> + + * pango.defs: add is-constructor-of arguments to some defs, and + add fields to some object and boxed defs. + + * pango.override: add more overrides. + + * pango.defs: add more boxed type defs. + + * gtk/gtk.defs (dequeue_resize_handler): remove removed function. + + * codegen/override.py (Overrides.__parse_override): fix bug here. + string.find returns negative value on error -- not zero. + + * codegen/argtypes.py (GTypeArg.write_param): fix up arg handler. + + * Makefile.am (pangomodule_la_SOURCES): fix up makefile rules to + build the pango module. + + * pango.override: changes so that it builds properly. + + * configure.in: add line to check for pango and set PANGO_CFLAGS + and PANGO_LIBS. + + * Makefile.am (pangomodule_la_SOURCES): add rules to build pango + module. + + * pango.defs: + * pango.override: + * pangomodule.c: new files for the pango wrapper module. + +2001-07-01 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_signal_list_names): function to list the + signals of an object type. From patch by Skip Montanaro + (pyg_object_class_list_properties): function to list the + properties of a GObject. Also from Skip. + + * gtk/gtk.override (_wrap_gtk_list_store_new): fix to use + gtk_list_store_newv. + (_wrap_gtk_tree_store_new): similar fix here. + +2001-06-30 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: remove GdkDevice stuff from this file. + + * gtk/gtk.override: add attribute getters for some GdkDevice + attributes, and overrides for some GdkDevice methods. + (_wrap_gdk_event_getattr): change stuff for GdkDevices, as they + are now GObjects. + + * gtk/gdk.defs (Device): add device boxed type here. + + * gtk/gtk.override (_wrap_gtk_selection_add_targets): fix up to + use PyGBoxed version of GdkEvent. + + * gtk/gtk-types.c: remove GdkEvent stuff from here. Also delete + the commented out GdkDragContext code, as the current GObject + implementation has the same features now. + + * gtk/gtk.override (_wrap_gdk_event_getattr): implement the + getattr method for GdkEvents. + + * gtk/gdk.defs (Event): add boxed type here. + + * gobjectmodule.c (initgobject): remove g_type_init() argument. + + * gtk/gdk.defs (Visual): make GdkVisual a boxed. + + * gtk/gtk.override (GdkDragContext.targets): override getter for + this attribute. + (_wrap_gtk_list_store_new): comment out most of this function as + there is no way to construct a GtkListStore without C varargs as + of the last GtkTree related commit. + + * gtk/gtk-types.c: remove uses of GtkSelectionData. + + * gtk/gtk.override (GtkSelectionData.data): override the data + attribute for GtkSelectionData types. + (_wrap_gtk_selection_data_set): override method. + + * gtk/gtk.defs (SelectionData): add GtkSelectionData boxed type + here. + +2001-06-29 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (write_getattr): add code to allow overriding + the getter for a single attribute. + (write_boxed_getattr): same here. + + * codegen/override.py (Overrides): add code to handle + "override_attr" statements in an overrides file. + + * codegen/codegen.py (write_getattr): add support for overriding + the complete getattr method for a GObject class. + (write_boxed_getattr): similar change here. + + * configure.in: require 1.3.7 versions of glib and gtk+. + (AC_ARG_ENABLE): fix --disable-thread argument. It was actually + looking for --disable-numpy, which causes all kinds of weirdness. + + * gtk/gtk.override (_wrap_gdk_cursor_new): constructor for + GdkCursor that handles both the standard and pixmap cases for + cursors. + + * gtk/gtk-types.c: remove GdkCursor related stuff from this file. + + * gtk/gdk.defs (Cursor): add boxed type for cursor. + (cursor_new): mark as constructor. + (cursor_new_from_pixmap): mark this one as a constructor as well. + +2001-06-27 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (arg): don't register a boxed handler for + GtkTextIter here. + + * gtk/gtk.override: add overrides for various GtkTextIter methods. + + * codegen/argtypes.py (BoxedArg.write_param): fix up variable type. + + * gtk/gtk.override (_wrap_gtk_text_iter_copy): implement text iter + copy function, and ignore the gtk_text_iter_free function (it + could cause troubles). + (*): replace function calls using the old GtkTextIter wrapper. + + * gtk/gtk.defs: update defs for GtkTextIter. + (TextIter): add text iter boxed type here. + + * examples/pygtk-demo/demos/toolbar.py (main): fix up toolbar + constructor. + + * examples/pygtk-demo/demos/treemodel.py: add on_get_iter() + method, and put tree view in a scrolled window. + + * gtk/pygtktreemodel.c (pygtk_tree_model_get_iter): add missing + function to GtkTreeModel implementation. + + * codegen/argtypes.py (arg): remove registrations for `custom' + boxed types for objects converted to PyGBoxed. + + * gtk/gtk.override: use PyGBoxed calls fro GtkTreeIters. + + * gtk/gtk-types.c: remove GtkTreeIter stuff from here. + + * gtk/gtk.defs (TreeIter): add boxed type here. + +2001-06-26 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: remove traces of GdkColor from this file. + + * gtk/gtk.override: convert occurences of PyGdkColor_* with + correct PyGBoxed calls. + + * gtk/gdk.defs (Color): add GdkColor boxed type here. + +2001-06-25 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_binding_entry_add_signal): new + function, based on implementation from Skip. Some small cleanups + applied. + + * gtk/gtkobject-support.c: remove dead code for GtkArg handling, + etc. (also tidied up references to it in other files). + +2001-06-24 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: removed all traces of GdkFont. + + * gtk/gdk.defs (Font): add boxed type for font. + + * gtk/gtk-types.c: removed all traces of GdkVisual. + + * gtk/gdk.defs (Visual): add boxed type for visual. + + * gtk/gtk-types.c: remove all traces of GtkAccelGroup from this + file -- GtkAccelGroup is now generated code. + + * gtk/gtk.defs (AccelGroup): add boxed type here. + +2001-06-23 James Henstridge <james@daa.com.au> + + * codegen/codegen.py: generate wrappers for boxed types as well. + + * codegen/defsparser.py (DefsParser.boxed): handle (boxed ...) + lines. + + * codegen/definitions.py (BoxedDef): add a class for holding a + Boxed definition. + + * gobjectmodule.c (pyg_signal_new): more fixups to use + pyg_type_from_object. + + * gtk/gtk.override (_wrap_gtk_accel_group_new): don't use + PyGtkAccelGroup_New (not sure why I am fixing this -- will change + soon anyway). + (_wrap_gtk_tree_store_set_value): use pyg_type_from_object here. + (_wrap_gtk_list_store_set_value): same here. + + * codegen/argtypes.py (CustomBoxedArg): rename from BoxedArg. + (BoxedArg): new code for standardised PyGBoxed handling. + (ArgMatcher.register_custom_boxed): rename from register_boxed + (ArgMatcher.register_boxed): new function for PyGBoxed types. + (arg): use ArgMatcher.register_boxed to register GtkAccelGroup. + + * pygobject.h (pyg_boxed_check): change macro to check against the + typecode, rather than python wrapper type. + +2001-06-22 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (GTypeArg.write_param): new arg type for + GType and GtkType args that uses pyg_type_from_object. + + * gobjectmodule.c (pyg_type_from_object): new function to get a + type code from various types of python objects (currently, integer + like objects, strings and other objects that have a __gtype__ + attribute). + (pygobject__init__): use pyg_type_from_object to get the object + type. + (pyg_signal_new): same here. + +2001-06-21 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_boxed_getattro): allow getattr to work on + PyGBoxed types (while not overloading tp_getattr). We fall back + to tp_getattr if provided by the boxed type. + (pyg_register_boxed): make sure tp_getattro is set correctly. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): convert + GtkAccelGroup to a PyGBoxed type. + + * gtk/gtkobject-support.c (pygtk_dict_as_container_args): comment + out, as container args have been switched to properties now. + +2001-06-19 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_value_from_pyobject): handle PyGBoxed + types. + (pyg_value_as_pyobject): pass out PyGBoxed types if no custom + handler is found, rather than straight CObjects. Will need to do + something about cases where we want mutable values (ie. don't copy + the boxed type). + + * configure.in: require glib/gtk+ 1.3.6 + +2001-06-13 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (Dialog): add fields that were missing (pointed out + by Skip). + + * gtk/gtk.override: various updates to overrides file. + +2001-06-12 James Henstridge <james@daa.com.au> + + * gtk/gtk.override (_wrap_gtk_tree_view_get_path_at_pos): fix bug + when no keyword arguments are passed in. Bug found by Skip + Montanaro. + + * examples/pygtk-demo/pygtk-demo.py (create_list): correct signal + name. + + * gtk/gtk.defs: update for changes made to gtk. + +2001-06-09 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (write_interface): remove the constructor + from interfaces. It is now provided by GInterface. + (write_source): use pyg_register_interface to register interfaces. + + * gobjectmodule.c (PyGInterface_Type): add a GInterface class that + is the base of all interfaces. It prevents subclassing of + interface objects, etc. + +2001-06-08 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_register_boxed): function to register a new + boxed type ExtensionClass. + (pyg_boxed_new): new function to create wrapper instances for a + particular boxed type (given its typecode). + +2001-06-07 James Henstridge <james@daa.com.au> + + * pygobject.h (pyg_boxed_get): add prototypes for a PyGBoxed type + that will be used for all boxed types in pygtk (well, I can hope + :) + + * gobjectmodule.c (pyg_register_interface): new function to + register interfaces with. Makes sure I don't accidentally give + the interface a parent class :). Also adds a __gtype__ class + attribute similar to GObject classes. May also make interfaces + subclasses of GInterface at some point. + +2001-05-29 James Henstridge <james@daa.com.au> + + * codegen/Makefile.am: install the code generator + + * gtk/Makefile.am: install the pygtk.h header + + * Makefile.am: install the pygobject.h header + + * gtk/gdk.defs, gtk/gtk.defs, gtk/gtk-types.c: changes to make + things compile. + +2001-05-28 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (write_source): add code to reorder object + definitions if necessary. To catch ordering problems in .defs + file. + +2001-05-27 James Henstridge <james@daa.com.au> + + * codegen/codegen.py (write_source): interfaces don't have + parents. + + * codegen/definitions.py (InterfaceDef.write_defs): don't look for + (parent ...) sections in interface definitions. + + * gtk/gtk.defs (Editable): interfaces don't have parents. + +2001-05-07 James Henstridge <james@daa.com.au> + + * examples/gobject/signal.py: register new types. + +2001-05-06 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject__init__): make the __init__ function + choose what GType to pass to g_object_new based on the __gtype__ + attribute. + (pygobject_methods): make __gobject_init__ an alias for + GObject.__init__. + (pyg_type_register): new function for registering new GTypes. + (pyg_type_register): register the type as "module+class" rather + than "module.class", as the second form is considered bad (would + like to use the second form though. + + * configure.in: require 1.3.5 versions of glib and gtk+. + +2001-05-05 James Henstridge <james@daa.com.au> + + * codegen/docgen.py (DocbookDocWriter.output_toc): Produce kind of + nice docbook documentation. Example output available at + http://www.gnome.org/~james/pygtk-docs/. + +2001-05-03 James Henstridge <james@daa.com.au> + + * codegen/docgen.py (DocWriter): handle output of constructor and + method docs. Use overrides file so as not to output info about + methods we don't actually wrap. + + * codegen/Makefile.am (noinst_PYTHON): update file list. + + * codegen/__init__.py (__all__): update module list. + + * codegen/mergedefs.py: same here. + + * codegen/docgen.py (DocWriter.__init__): same here. + + * codegen/codegen.py: import defsparser instead. + + * codegen/defsparser.py: rename from parser.py. + +2001-05-01 James Henstridge <james@daa.com.au> + + * autogen.sh: fix up autogen script to call autoheader + + * gtk/gtk.defs: remove colorsel palette manipulation functions. + +2001-05-01 Matthew Wilson <msw@redhat.com> + + * acinclude.m4 (AM_PATH_PYTHON_JH): only run the AC_PATH_PROGS + check if we don't have a PYTHON environment variable set + + * autogen.sh: run autoheader + + * acinclude.m4 (AM_PATH_PYTHON_JH): s/AC_PATH_PROG/AC_PATH_PROGS/ + so we check for more than one python interpreter. + +2001-04-28 James Henstridge <james@daa.com.au> + + * Makefile.am, pygtk/Makefile.am: limit the symbols exported by + the various modules to just their module init function. + + * gtk/Makefile.am (_gtkmodule_la_LDFLAGS): only export the + init_gtk symbol. + + * examples/pygtk-demo/demos/toolbar.py (main): remove buttons that + called set_space_size method. + + * gtk/__init__.py: remove __all__ definition. It causes problems + with python 2.1. + + * gtk/gtk.override: updated GtkColorSelection method overrides + (ignore): remove gtk_entry_new from ignore list, as other entry + constructor is gone. + + * gtk/gtk.defs: updates to make it work with current gtk+ + +2001-04-21 James Henstridge <james@daa.com.au> + + * codegen/docgen.py, codegen/docextract.py: start of automatic + documentation generator. + +2001-04-08 James Henstridge <james@daa.com.au> + + * gtk/gtk.override: same here. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): more fixups + + * gtk/gtkobject-support.c: lots of similar fixups. + + * codegen/argtypes.py (_enum_name): gdk type codes now seem to be + named GDK_TYPE_... and not GTK_TYPE_GDK_... + +2001-04-07 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs: lots of defs file updates. + +2001-04-06 James Henstridge <james@daa.com.au> + + * codegen/h2def.py: add --onlyobjdefs flag to script. + +2001-03-30 James Henstridge <james@daa.com.au> + + * examples/pygtk-demo/demos/toolbar.py (main): toolbar demo. + + * examples/pygtk-demo/demos/buttonbox.py (main): add button box + demo. + + * examples/pygtk-demo: moved rewritten testgtk demo here, and make + changes to account for renamings in gtk. + + * gobjectmodule.c (pygobject_set_property): initialise the GValue + to { 0, }, so set_property actually works. + (pygobject_get_property): same here. + + * gtk/gtk.defs: updated enum/flag defs. + + * gtk/gdk.defs: updated enum/flag defs. + + * examples/gobject/signal.py (D.do_my_signal): add small example + of overriding class closure for a signal introduced from python + code. + + * codegen/h2def.py: add --onlyenums flag to only output enum defs. + +2001-03-27 James Henstridge <james@daa.com.au> + + * examples/gobject/signal.py: simple example program that adds a + signal to a class, connects a handler to an instance of that + class, and finally emits that signal. Messages are printed by + both the signal handler and class method closure. + + * gobjectmodule.c (pyg_signal_class_closure_marshal): convert + dashes in signal name to underscores. Why does g_siganl_name use + dashes? + (pyg_signal_class_closure_marshal): fix off by one error when + setting up the python argument tuple. The first element was + getting left uninitialised. Signals introduced in python now + work. + + * gtk/gtk.defs (GtkFileSelection.get_filename): return value is + const. + + * gtk/gtk.override (_wrap_gtk_list_store_set_value): change name. + (_wrap_gtk_tree_store_insert): change name. + + * gtk/gtk.defs (GtkListStore.set_value): change from set_cell to + set_value. + (GtkListStore.set_value): same here. + + * gobjectmodule.c (pyg_signal_class_closure_get): new function to + get the closure used as the `class closure' for signals. We only + need one, as we can get all the information we need from the + invocation hint. + (pyg_signal_new): new function to create new signals. Doesn't + work right yet. + +2001-03-26 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject__class_init__): add some comments + about creating new GTypes here. + + * gobjectmodule.c: add type info functions to module. + +2001-03-24 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c (pygtk_text_iter_is_end): s/is_last/is_end/ + + * gobjectmodule.c (pyg_closure_new): + s/add_fnotify/add_finalize_notifier/ + + * gtk/gdk.defs, gtk/gtk.defs, gtk/gtk.override: various changes to + make it compile again. + +2001-03-18 James Henstridge <james@daa.com.au> + + * gtk/pygtktreemodel.c (pygtk_tree_model_class_init): signals are + now created in the gtktreemodel.c, so we don't need to. + + * gtk/gtk.defs (Adjustment): make parent GtkObject, as GtkData is + gone. + (GtkText): remove from binding. + + * codegen/codegen.py (write_source): pass in the get_type function + when registering classes. + (gettypetmpl): remove template. + (write_class): remove get_type method generator. Handled by __gtype__ + + * gobjectmodule.c (initgobject): add argument to g_type_init call. + (pyg_value_from_pyobject): use G_VALUE_HOLDS_* rather than + G_IS_VALUE_*. + (pyg_value_as_pyobject): same here. + (pygobject_register_class): add an argument that takes the + get_type function for the GObject. This is used to add a + __gtype__ attribute to the class (the get_type function is not + actually called until __gtype__ is accessed). + +2001-02-03 James Henstridge <james@daa.com.au> + + * gtk/pygtktreemodel.c (*): s/tree_node/user_data/ + + * gtk/gtk-types.c (pygtk_text_iter_forward_to_line_end): rename + function. + (pygtk_tree_iter_compare): fix compare function. + (pygtk_tree_iter_hash): fix hash function. + +2000-12-16 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c (pygtk_text_iter_forward_to_delimiters): rename + function. + +2000-12-14 James Henstridge <james@daa.com.au> + + * examples/testgtk/demos/menu.py (main): destroy window on + button's clicked signal rather than destroy signal. + + * gtk/gtk.defs: remove gtk_object_default_construct and + gtk_object_constructed. + + * gobjectmodule.c: change over to new notification functions. + + * gtk/gtk-types.c: rename functions. + + * gobjectmodule.c (pygobject_get_property): + (pygobject_set_property): change function names to match changes + in glib. + (...connect|emit): use g_signal_parse_name instead of + g_signal_lookup, so we can parse the detail out of the signal name + string. + +2000-12-07 James Henstridge <james@daa.com.au> + + * examples/testgtk/demos/treemodel.py (MyTreeModel.on_get_path): + fix small typo. + +2000-12-06 James Henstridge <james@daa.com.au> + + * gtk/pygtktreemodel.c: fix PyObject_CallMethod calls to add + parentheses around argument type list. + (pygtk_tree_model_get_flags): decref py_ret -- not Py_None + (pygtk_tree_model_get_n_columns): same here. + (pygtk_tree_model_get_column_type): same here. + (*): conditionally print out debugging messages. + + * examples/testgtk/demos/treemodel.py: simple test of + PyGtkTreeModel. + + * gtk/pygtktreemodel.c: set iter->tree_node to NULL when returning + FALSE, as GTK sometimes ignores the return value :( + + * codegen/codegen.py (interfacetypetmpl): don't set the interface + type as having an instance dictionary. + (write_interface): actually use interfacetypetmpl when writing out + the interface type def. + + * codegen/argtypes.py (_conv_special_cases): add a special case + for the underscore version of PyGtkTreeModel. + + * gtk/gtk.override: include pygtktreemodel.h + + * gtk/__init__.py: don't error out if we can't import ltihooks. + + * gtk/gtk-extrafuncs.defs: include defs for PyGtkTreeModel type. + + * gtk/Makefile.am (_gtkmodule_la_SOURCES): compile PyGtkTreeModel + into pygtk. + + * gtk/pygtktreemodel.c: fix errors. + + * gtk/pygtktreemodel.[ch]: check in initial leaky implementation + of the GtkTreeModel for use from python. Can't test it right now + because gtk head is broken. + +2000-11-29 James Henstridge <james@daa.com.au> + + * configure.in (enable_thread): update checks for glib/gtk+ to + require at least 1.3.2. + + * codegen/h2def.py (write_enum_defs): Havoc's enum handling patch. + + * TODO: add todo item about creating real GObject subclasses, and + add some info on the GInterface stuff. + + * examples/testgtk/testgtk.py (load_module): fix bug where + mod.__file__ is the .pyc file rather than the .py file. + + * gtk/gtk.defs: change parent type for some classes to GtkDialog + to match changes in gtk+. + + * gtk/Makefile.am (pysitedir, pyexecdir): fix up directory names. + It wasn't installing these files in a gtk/ subdirectory :( + +2000-11-16 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs: make changes to make GtkEditable into an + interface. + + * examples/testgtk/demos/__init__.py (demos): create the list of + example modules on the fly, rather than having them hard coded + into a list. + +2000-11-11 James Henstridge <james@daa.com.au> + + * examples/testgtk/testgtk.py: start of a revamped testgtk + example, similar to the new one in gtk. + + * gtk/gtk-types.c (PyGdkEvent_New): guard against a NULL axes + member in the GdkEvent structure. + + * gtk/gtk.override (_wrap_gtk_tree_view_get_path_at_pos): + implementation of this function. + + * codegen/argtypes.py (GtkTreePathArg): add an arg matcher for + GtkTreePath objects, that represents them as tuples of integers. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): add marshalers + for GtkTreeIter and GtkTreePath so they can be used from signal + handlers now. + + * gtk/gtk.override, gtk/gtk.defs: make name change for + GtkTreeStore constructor. + +2000-11-10 James Henstridge <james@daa.com.au> + + * gtk/gtk.override: ignore the gtk_tree_view_new function, so + gtk_tree_view_new_with_model gets chosen as the constructor. + (_wrap_gtk_tree_store_...): fix up the iterator creation methods + so that they can take NULL arguments. + (_wrap_gtk_tree_view_column_new): new implementation of this + constructor. Map keyword arguments to column attributes. + + * gtk/gtk.defs (gtk_tree_view_new_with_model, GtkTreeView.set_model): + Allow NULL to be passed in as the model argument. + + * gtk/gtk.override: add gtk_tree_model_get_{iter,path,value} + functions. + (_wrap_gtk_list_store_*): add constructor and set_cell + implementations, and impls of the insertion functions that return + the new GtkTreeIter, rather than treating it as an out argument. + (_wrap_gtk_list_store_set_cell): allow string versions of type + codes for convenience. + (_wrap_gtk_list_store_insert): directly access column_headers + structure member as the get_column_type method doesn't exist. + (_wrap_gtk_tree_store_*): constructor, set_cell and tree iter + creation methods added. Ignore [gs]et{,v}. + +2000-11-09 James Henstridge <james@daa.com.au> + + * gtk/gtk.defs (ListStore, TreeStore): these implement the + GtkTreeModel interface. + (TreeModel): add interface definition here. + + * codegen/codegen.py (register_types): register interfaces into + the argument type matcher. + (write_source): write out interface source. Register interface + class types before object types, as they may be used by objects. + (write_source): set multiple base classes if an object implements + an interface. + (write_interface): function to write out the code for an + interface. It is really a simplified version of write_class. + + * codegen/parser.py (DefsParser.interface): handle interface + clauses. + + * codegen/definitions.py (InterfaceDef): add a class for interface + definitions. + (ObjectDef): add support for an implements keyword. + + * codegen/codegen.py (write_source): change code generator to pass + bases in as a tuple rather than a single PyExtensionClass + structure. + + * pygobject.h: change prototype. + + * gobjectmodule.c (pygobject_register_class): allow for registerin + a type with multiple base classes. + +2000-11-08 James Henstridge <james@daa.com.au> + + * codegen/argtypes.py (_conv_special_cases): add a special case + for converting GObject -> G_OBJECT. + + * gobjectmodule.c (pygobject_connect*): g_signal_connect_closure + renaming. + + * codegen/argtypes.py (arg): add GtkTreeIter support. + + * gtk/gtk-types.c, gtk/pygtk.h, gtk/pygtk-private.h: add a + skeleton for the GtkTreeIter wrapper. + +2000-11-04 James Henstridge <james@daa.com.au> + + * TODO: todo file with a few items needed for the gtk 2.0 based + pygtk. + + * gtk/gtk.defs: add new GtkTree widget definitions. + (GtkTreeViewColumn.get_justification): comment out as it doesn't + exist. + +2000-11-02 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c (_pygtk_register_boxed_types): small changes to + handle GtkTextIter objects as arguments to signals, now that Havoc + made the appropriate changes in gtk. + +2000-10-30 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pyg_closure_marshal): reorder parameters to + make it work with latest glib. + (pygobject_connect*): pass 0 for the new detail parameter. Don't + know what it is for. + (pygobject_emit): pass 0 for detail parameter. + (pygobject_stop_emission): pass 0 for detail parameter. + + * gtk/gtkmodule.c (init_gtk): init as module gtk._gtk. Using just + _gtk doesn't seem to work with python 2.0 + +2000-10-29 James Henstridge <james@james.daa.com.au> + + * examples/ide/gtkcons.py: small changes to make example run. + + * gtk/gtk-types.c: add GtkTextIter.forward_search implementation. + + * gtk/gtk.override: more override functions. + + * gtk/gtkobject-support.c: remove some of the unused functions from + this file. + +2000-10-28 James Henstridge <james@james.daa.com.au> + + * gtk/gtk.override: override the functions used to initialise + GtkTextIter objects so that they return the iterator rather than + setting up an static GtkTextIter structure. + + * gtk/gtk.defs (TextMark): add missing GtkTextMark object. Don't + know why h2defs missed it. + ("gtk-extrafuncs.defs"): include gtk-extrafuncs.defs. + + * codegen/argtypes.py: add GdkDevice and GtkTextIter to list of + recognised boxed types. + + * gtk/gtk-types.c: add skeleton implementation of GtkTextIter. + + * gtk/pygtk.h, gtk/pygtk-private.h: add prototypes for GtkTextIter + wrapper. + + * gtk/gtk.override: ref and sink GtkObjects which have their + constructors listed in the overrides file. This should get rid of + the last few warnings on exit related to reference counting. + + * codegen/codegen.py: use the keyword module to check for method + and argument names that conflict with the python keywords. By + using this module, we shouldn't have problems with new keywords in + future versions of python. + +2000-10-27 James Henstridge <james@james.daa.com.au> + + * gobjectmodule.c (pygobject_emit): support for emiting signals on + GObjects from python. + + * codegen/codegen.py (write_constructor): sink GtkObjects. This + prevents us losing our reference to the object if it is sunk. + + * codegen/argtypes.py (ArgMatcher.object_is_a): function to check + if one object type is another type. + + * codegen/codegen.py (register_types): pass the parent type when + registering a new GObject type. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): register + marshalers for the various boxed types, so that they work as + expected inside the signal handlers. + + * gobjectmodule.c (pygobject_repr): small change to match style of + other repr functions in python. + + * gtk/gtkmodule.c (init_gtk): only call g_thread_init() if pygtk + threading support is enabled. + + * configure.in (enable_thread): add configure checks so that + threading support can be disabled even if python was compiled with + it. It defaults to off for now because GSignal has some mutex + deadlocks at the moment. + +2000-10-26 James Henstridge <james@daa.com.au> + + * gtk/gtkmodule.c (init_gtk): remove gtk_signal_set_funcs call. + + * gobjectmodule.c (pyg_value_from_pyobject): default to using + CObject for unknown boxed values and pointer values. + (pyg_value_as_pyobject): same here. + (pygobject_connect*): Add signal connection functions. + + * gobjectmodule.c (pyg_boxed_register): new function for + registering functions to marshal boxed GValues to/from their + python wrappers. + (pyg_value_from_pyobject): add boxed support. + (pyg_value_as_pyobject): add boxed support. + (pyg_closure_new): new function to create a python GClosure. + (pyg_closure_destroy): cleanup function for a PyGClosure. + (pyg_closure_marshal): marshaler for PyGClosure. + (pyg_value_as_pyobject): add const to GValue argument. + + * pygobject.h: export a pyg_boxed_register function to register + new boxed types for use with pyg_value_from_pyobject and + pyg_value_as_pyobject. + +2000-10-25 James Henstridge <james@daa.com.au> + + * gtk/gtkmodule.c (init_gtk): set the default python character + encoding to UTF-8. + + * gtk/gtk.defs: more setting constructors and default arguments. + + * gtk/gtk.defs: more updates. + + * gobjectmodule.c (pygobject_getattro): return NULL on error. + This fixes the segfault :) + + * gtk/gtk.defs (Bin): add a field just to test pygobject_getattro. + It isn't working quite properly at the moment though :( + + * gobjectmodule.c (check_bases): class->bases is a tuple -- not a + list. + (check_bases): check if class->bases != NULL before using it :( + + * gtk/gtk.defs: comment out new tree widget stuff at hp and owen's + suggestion. + + * gtk/__init__.py: import gobject here as well to prevent weirdness. + + * gtk/gtk.defs: more updates, adding (is-constructor-of ...) and + (default "...") clauses. + + * gtk/gtk.override (_wrap_gtk_button_new): handle the accel_group + argument, and try to create a stock button if possible. + + * gtk/gtk.defs, gtk/gdk.defs: various small fixes. + + * gtk/gtk.override: fix lots of overrides to work with gtk 2.0 + +2000-10-24 James Henstridge <james@daa.com.au> + + * gtk/gdk.defs: remove unneeded gdk_input_* functions. + + * gtk/gtk.override: small updates. + + * gtk/gtk.defs: update with defs from all of gtk. + + * codegen/h2def.py (find_enum_defs): small fix to enums parsing. + + * gtk/gtk-types.c: add support for GdkDevice and convert function + names to lowercase. + + * gtk/gtkmodule.c: add GdkDevice stuff to PyGtk_API. + + * gtk/pygtk.h, gtk/pygtk-private.h: add GdkDevice to list of boxed + types. + +2000-10-23 James Henstridge <james@daa.com.au> + + * gobjectmodule.c: don't set the getattr method on objects if it + isn't already set. Also, install a getattro handler that will + perform the usual method/attribute lookup and then call the + getattr method for all base classes to allow specifying of class + specific attributes + +2000-07-03 James Henstridge <james@daa.com.au> + + * gtk/gtkmodule.c (init_gtk): actually initialise the gobject stuff + for gtk._gtk. + + * pygobject.h (pygobject_check): call the correct ExtensionClass + check macro. + (init_pygobject): small fixup here. + + * codegen/codegen.py (noconstructor): handle the null constructor + better. + (consttmpl): use pygobject_register_wrapper. + (getattrtmpl): make the getattr function raise an exception on + unhandled attributes. I will use a tp_getattro function to bind + all the getattr functions of base classes together. + + * gtk/gtk-types.c (_pygtk_register_boxed_types): commented out the + object implementations for types that have been converted to + GObjects. + + * gtk/gtkobject-support.c: commented out some of this code to get + it to compile again. Also converted some functions over to GObject. + + * codegen/argtypes.py (EnumArg,FlagsArg): use the version from gobject. + + * gtk/gtkmodule.c: update + + * gtk/gtk.override: fix up the overrides for the new gdk.defs stuff. + (GTK_TYPE_GDK_*): add some dummy defines to make things compile until + the gdk-pixbuf enums are added to + + * codegen/argtypes.py (ObjectArg.write_param): use PyGObject + rather than PyGtk_Object. + + * pygobject.h (pygobject_check): add check function. Just a wrapper + around ExtensionClassSubclassInstance. + + * codegen/codegen.py: updated to use PyGObject rather than + PyGtk_Object. + + * gtk/gtk.defs: removed most of the stuff here so I can test out + the gdk stuff. + + * gtk/gdk.defs: updated to gdk-1.3. A lot of stuff in here. + + * codegen/h2def.py (verbose): remove the special case for GtkObject. + (find_obj_defs): amend regexes so that GObject is considered a valid + object name. + +2000-06-29 James Henstridge <james@daa.com.au> + + * gobjectmodule.c: use pygobject.h. + (pygobject_[gs]et_param): free the GValue afterwards so as not to + leak memory. + + * pygobject.h: header for modules that want to use GObject. + +2000-06-28 James Henstridge <james@daa.com.au> + + * gobjectmodule.c: add get_data / set_data methods. + Add get_param / set_param methods. + (pygobject__init__): simple init function for GObjects. Doesn't + handle params yet. + (pygobject_register_wrapper): don't ref the GObject -- it isn't like + GtkObjects where we ref/sink them. + (pygobject_queue_param_changed): add queue_param_changed method. + +2000-06-27 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_dealloc): start of gobject wrapper. + +2000-06-19 Frederic Gobry <frederic.gobry@epfl.ch> + + * gdkimlibmodule.c: do an actual call to create_from_array instead + of create_from_data, and fixed broken test on alpha channel + +2000-04-15 James Henstridge <james@daa.com.au> + + * gtkmodule.c: move gtk_set_locale here, and set LC_NUMERIC back to + "C" after call. Python's numeric locale should be fixed on C. + +2000-04-07 James Henstridge <james@daa.com.au> + + * NEWS: added news items. + + * pygtk.spec, configure.in: updated version number. + + * configure.in (enable_numpy): added --disable-numpy argument that + disables numeric python support even if numpy is found. + + * gtkmodule.c (PyGdkWindow_{Pointer,Keyboard}{Grab,Ungrab}): new + GdkWindow methods. + + * gtk.py (rc_reparse_all): fix spelling mistake. + (GtkTreeItem.__getattr__): fix bug reported by Aaron Digulla. + + * generate/gtklists.defs (gtk_clist_get_selectable): fix bug in + return type. + +2000-04-06 James Henstridge <james@daa.com.au> + + * (lots of files): switch over to using libtool and automake-1.4a. + +2000-03-13 James Henstridge <james@daa.com.au> + + * pyglade/__init__.py: remove python-1.4 ni stuff, and put in a + warning message that you should think of switching over to libglade. + + * pygtk.spec: incremented version number. Code gtk+ dependency into + spec file. Made auxillary packages depend on the pygtk package of + the same version. + + * configure.in: incremented version number. Incremented minimum + required GTK+ so that when threading is compiled in we don't get + problems caused by using old buggy versions of GTK+. + + * gtkmodule.c (PyGdkWindow_PropertyChange): fixed the 32 bit data + part of the case statement correctly this time :) + +2000-03-08 James Henstridge <james@daa.com.au> + + * gtkmodule.c (PyGdkWindow_PropertyChange): fixed up problem in + property_change method that could cause a crash if data of + size 16 or 32 was set. + (PyGtkStyleHelper_SetItem): added missing return that could cause + a fallthrough to the g_assert_not_reached() call when setting a + bg_pixmap element on a GtkStyle. + +2000-03-03 James Henstridge <james@daa.com.au> + + The following is from Paul Clifford <paul@plasma.demon.co.uk> + + * libglade.py (GladeXML.signal_autoconnect): pass all the extra + arguments to autoconnect. + + * libglademodule.c (connect_many): don't exit if the handler is + a tuple instead of a function. + + The following fixes are from John Ehresman <jpe@archaeopteryx.com> + + * gtk.py (GtkWidget.set_scroll_adjustments): return the value to + user. + + * gtkmodule.c (GtkArg_AsPyObject): check if GtkObject is not NULL. + (_wrap_gtk_clist_get_pixmap, _gtk_clist_get_pixtext): check that + returned pixmap is not NULL. + (_wrap_gtk_ctree_node_get_pixmap, _gtk_ctree_node_get_pixtext): check + that returned pixmap is not NULL. + + * gtk.py (GtkToolbar): wrap callbacks when inserting a toolbar item. + (GtkNotebook.set_menu_label_text): fixed typo + (GtkTreeItem.__getattr__): wrap subtree attribute. + +2000-03-01 Frederic Gobry <gobry@lith.di.epfl.ch> + + * gtkmodule.c (PyGtkSelectionData_GetAttr): added .length field, + so that it is possible to check for invalid selection during + copy/paste. + +2000-02-23 Frederic Gobry <gobry@lith.di.epfl.ch> + + * gtkmodule (GtkRet_FromPyObject): added missing break in switch. + +2000-02-21 James Henstridge <james@daa.com.au> + + * gtk.py (GtkTable.resize): added missing function. Patch from + wrobell <wrobell@posexperts.com.pl>. + + * generate/gtkcontainers.defs (gtk_table_resize): added missing + function. + +2000-02-20 James Henstridge <james@daa.com.au> + + * gtk.py (GtkCList.get_[hv]adjustment): apply fix from Martin + Preishuber. + +2000-02-16 James Henstridge <james@daa.com.au> + + * configure.in, pygtk.spec: updated version to 0.6.4 + +2000-01-27 Elliot Lee <sopwith@redhat.com> + * gtk.py: s/sel/self/ in GtkSpinButton.get_adjustment() + +2000-01-26 James Henstridge <james@daa.com.au> + + * gtk.py (GtkObject.__hash__): use C level GtkObject for hash + function. + (GtkAccelGroup.__cmp__): use C level object for comparisons. + (GtkAccelGroup.__hash__): use C level object for hashing. + + * gtkmodule.c: added hash functions for many object types. + +2000-01-25 Kelly Lynn Martin <kelly@poverty.bloomington.in.us> + + * gtk.py (gdk_beep): new wrapper + * gtkmodule.c (_wrap_gdk_beep): new implementation + +2000-01-21 Matt Wilson <msw@redhat.com> + + * generate/generate.py: add a hack to allow a null-ok flag on the + return type. This lets us create wrappers which return None if + the C function returns NULL. + + * generate/gtklists.defs (gtk_ctree_node_nth): return None when + gtk_ctree_node_nth returns NULL. + +2000-01-20 Matt Wilson <msw@redhat.com> + + * gtkmodule.c (PyGtk_New): disable object sinking for now, until + we rework the .def file and generation routines to know which + functions are creators. + +2000-01-20 Matt Wilson <msw@redhat.com> + + * gtk.py (GtkCList.row_move): s/soure_row/source_row/g typo + +2000-01-17 Matt Wilson <msw@redhat.com> + + * gtkmodule.c: following changes from ChiDeok Hwang + <cdhwang@sr.hei.co.kr> + + * gtkmodule.c (_wrap_gtk_adjustment_set_all): parse the 6 optional + arguments. + + * gtkmodule.c (_wrap_gtk_widget_draw, + _wrap_gtk_widget_size_allocate, _wrap_gtk_widget_intersect, + _wrap_gdk_color_alloc): fix PyArg_ParseTuple format strings to use + shorts instead of ints where necessary. + + * gtkmodule.c (_wrap_gtk_toolbar_insert_item): check to make sure + callback isn't Py_None before Py_INCREF() + + * gtkmodule.c (_wrap_gtk_toolbar_insert_item, + _wrap_gtk_toolbar_append_item, _wrap_gtk_toolbar_prepend_item): + fix broken ParseTuple specification strings. + + * gtkmodule.c (_wrap_gtk_clist_get_selection): use + GPOINTER_TO_UINT to get row. + +2000-01-17 Matt Wilson <msw@redhat.com> + + * libglademodule.c (connect_one, _wrap_glade_xml_signal_connect): + don't INCREF objects passed into Py_BuildValue as they are + INCREF'ed for you automatically. Pass new PyObjects in with 'N' + to consume the reference. + + * gtkmodule.c (PyGtk_New): sink the object upon creation. We + don't want floating GtkObjects. + + * gtkmodule.c: general cleanups, testing for success of PyObject + creation, reference count fixes. Several functions used + Py_BuildValue with 'O' format strings. This increfs the object + passed into the tuple where. When using Py*New in Py_BuildValue, + use 'N' in the format string to consume the reference of the new + object. + +2000-01-05 Matt Wilson <msw@redhat.com> + + * gdkimlibmodule.c, gtkglmodule.c, gtkmodule.c: Patch from ChiDeok + Hwang <cdhwang@sr.hei.co.kr> to decref PyObjects retrieved by + PySequence_GetItem. + +1999-12-18 Matt Wilson <msw@redhat.com> + + * gtkmodule.c (_wrap_gtk_clist_get_rows): removed function + + * generate/gtklists.defs (GtkCList): add field for rows + +1999-12-16 Matt Wilson <msw@redhat.com> + + * gtk.py (GtkCList.__getattr__): oops - left out the _gtk. part + +1999-12-15 Matt Wilson <msw@redhat.com> + + * gtk.py (GdkColor): added a function to create a GdkColor + object. You should use this if you don't want to allocate a color + before passing it into functions that don't need an allocated + color. + + * gtkmodule.c (_wrap_gdk_color_new, PyGdkColor_GetAttr): add a + functions to create and modify a GdkColor object. + +1999-12-15 Matt Wilson <msw@redhat.com> + + * gtk.py (GtkCList.__getattr__): added 'rows' attribute. + + * gtkmodule.c (_wrap_gtk_clist_get_rows): added wrapper to get + number of rows in a clist + + * gtkmodule.c (PyGtkStyle_New): If the GtkStyle passed in is NULL, + return a None object. This is a bit of a hack, but without it + you'll fail NULL assertions when you attach to the style_set + signal. + + * generate/gtkmisc.defs (gtk_pixmap_new): mask is null-ok. + + * generate/gtklists.defs (gtk_clist_set_pixmap): likewise. + + * pygtk.h (PyGdkBitmap_Check): define PyGdkBitmap_Check to be the + same as PyGdkWindow_Check. + + * gtkmodule.c: -Wall cleanups + + * libglademodule.c (init_libglade): removed unused variable + + * gdkimlibmodule.c (_wrap_gdk_imlib_init): s/static/static int/ + +1999-12-12 Matt Wilson <msw@redhat.com> + + * generate/generate.py (FunctionDefsParser.define_func): added new + string_or_null type to check for NULL when passing strings back + +1999-09-30 James Henstridge <james@daa.com.au> + + * pygtk.spec: updated spec file. + + * NEWS: added news items + + * configure.in: updated version number. + + * libglademodule.c: don't segfault when a widget name does not exist. + +1999-09-28 James Henstridge <james@daa.com.au> + + * libglade.py: enable gnome functionality if it is available. + + * gtk.py (GtkEditable.__getattr__): added accessors to GtkEditable. + + * generate/gtkedit.defs (GtkEditable): added accessors for some + fields of the GtkEditable. + + * gtkmodule.c: added _raise, lower and input_get_pointer methods to + the GdkWindow wrapper. + + * gtk.py (GtkAspectFrame.__init__): fixed prototype for GtkAspectFrame + +1999-08-25 Matt Wilson <msw@redhat.com> + + * gtkmodule.c (_wrap_gdk_char_width): added wrapper for gdk_char_width + * gtk.py (gdk_char_width): added wrapper for gdk_char_width + +1999-08-09 James Henstridge <james@daa.com.au> + + * pygtk.spec: updated spec file, and added subpackages pygtk-glarea + and pygtk-libglade. Also incremented version number. + +1999-08-08 James Henstridge <james@daa.com.au> + + * NEWS: updated news file. + + * configure.in: increased version number to 0.6.2. + + * gdkimlibmodule.c (_wrap_gdk_imlib_image_get_array): make sure that + the image data is not freed while the returned array is in use, so + that we don't get into an inconsistent state. + + * gtk.py: added gdkrgb functions to this file. + + * gtkmodule.c: added the gdkrgb functions for drawing rgb and greyscale + images. + (gdk_draw_array): a new function that will draw a numpy array to a + drawable with gdkrgb. It is written so that it can handle slicing + on the first two axes -- it does not handle non contiguous data on + the third axis. + +1999-08-04 Matt Wilson <msw@redhat.com> + + * GdkImlib.py (create_image_from_xpm): new wrapper for creating + imlib images from xpm data + + * gdkimlibmodule.c (_wrap_gdk_imlib_create_image_from_xpm): New + wrapper + +1999-08-03 James Henstridge <james@daa.com.au> + + * description.py (GdkWindow): added descriptions of the new routines. + + * gtkmodule.c (GdkWindow.property_{get,change,delete}): new functions + for manipulating the properties on a window. + + * gtk.py (_window_foreign_new, _root_window): added wrappers for + the new functions. + + * gtkmodule.c: added xid attribute to GdkWindow's, and added functions + gdk_window_foreign_new and gdk_get_root_win. The second function is + simply a wrapper that returns a GdkWindow for the root window. + +1999-08-02 James Henstridge <james@daa.com.au> + + * libglade.py: new file that wraps the _libglade module. + + * libglademodule.c: handle connecting to another object correctly. + + * gtkmodule.c: added support for passing an object for + gtk_signal_connect_object type behaviour. + (_wrap_gtk_signal_connect_object) + (_wrap_gtk_signal_connect_object_after): new wrappers. + + * gtk.py (idle_add, timeout_add, quit_add): pass extra arguments to + the callback. + + * libglademodule.c (_wrap_glade_xml_signal_connect): fixed a small + problem with reference counting here. + + * gtkmodule.c: added support for passing arguments to timeout, quit + and idle functions. + +1999-08-01 James Henstridge <james@daa.com.au> + + * pyglade/build.py (optionmenu_new): a small fix from David Cole. + + * configure.in: added tests to see if libglade is installed. + + * libglademodule.c: the rest of the libglade module + + * generate/libglade.defs: a .defs file for libglade. + +1999-07-31 James Henstridge <james@daa.com.au> + + * gtkmodule.c: put in Paul Fisher's enhancements to the threading + code. It should now work better with multiple threads calling + GTK+ routines (remember to use threads_enter/threads_leave), and + doesn't reintroduce the global interpreter lock problems that + Duncan's original code worked around. + + * configure.in: added a check for the numpy header. + + * GdkImlib.py: added wrappers for the numpy routines. + + * gdkimlibmodule.c: added Travis Oliphant's Numeric python stuff to + the imlib module. + +1999-07-20 Matt Wilson <msw@redhat.com> + + * gtk.py (gdk_flush): new wrapper + * gtkmodule.c (_wrap_gdk_flush): new implementation + +1999-07-19 James Henstridge <james@daa.com.au> + + * gtk.py (GtkAdjustment.set_all): a wrapper for the new function. + + * gtkmodule.c (_wrap_gtk_adjustment_set_all): simple wrapper for + setting values on an adjustment. + + * gtk.py (GtkCList.get_column_width): a wrapper for this new function. + + * gtkmodule.c (_wrap_gtk_clist_get_column_width): a function to get + the column width for a column in a clist. + + * gtk.py (_filtprops): convert GtkAccelGroup and GdkImlibImage types + back to the C equivalents. This makes adding GnomeCanvasImage items + to the GnomeCanvas easier. + (GtkCTree.node_get_selectable): added wrapper function. + +1999-07-18 James Henstridge <james@daa.com.au> + + * gtkmodule.c (_wrap_gdk_threads_enter): don't use PyGTK_BLOCK_THREADS, + since it should only be called outside the gtk main loop. Instead + use Py_BEGIN_ALLOW_THREADS. + + * examples/gl/*: new examples of use of gtkgl. + + * gtkgl.py: renamed from GtkGL.py. + + * gtkglmodule.c (_wrap_gtk_gl_area_new, _wrap_gtk_gl_area_share_new): + fixed small typo. + + * GtkGL.py: added constants. + +1999-07-15 James Henstridge <james@daa.com.au> + + * configure.in, Makefile.am: added tests for gtkglarea. + + * GtkGL.py: python wrapper for the GtkGLArea widget, and a few extra + functions for use with the widget. + + * generate/gtkgl.defs, gtkglmodule.c: added wrapper for gtkglarea. + +1999-07-14 James Henstridge <james@daa.com.au> + + * gdkimlibmodule.c: modified to use the pygdkimlib.h header. + + * pygdkimlib.h: new file similar to pygtk.h, but for _gdkimlib module. + + * gdkimlibmodule.c: modified to use the pygtk.h header. + + * gtkmodule.c: modified file to use the pygtk.h header, and set + up the _gtk._PyGtk_API object correctly. + + * pygtk.h: a new file with a similar use to the arrayobject.h in + numeric python. I will convert over to using this in pygtk and + gnome-python. + +1999-07-13 James Henstridge <james@daa.com.au> + + * gtkmodule.c (_wrap_gdk_threads_enter): unblock threads when waiting + for the GDK lock. This allows other threads to unlock it, and should + prevent some deadlocks. + + * gtkmodule.c (gtk_main_iteration, gtk_events_pending): removed code + to unlock gtk thread -- Owen fixed this properly in gtk. + +1999-07-12 James Henstridge <james@daa.com.au> + + * gtk.py: fixed a few bugs reported by Ville Lauriki. + + * generate/gtkmenus.defs (gtk_item_factory_add_foreign): fix a typo. + + * gtkmodule.c: fixed problems if gdk_atom_name returns NULL. + + (_wrap_gtk_main_iteration, _wrap_gtk_events_pending): added + GDK_THREADS_LEAVE() and GDK_THREADS_ENTER() calls round these + functions. Without this, it deadlocks if threads are enabled. + + * generate/gtklists.defs (GtkTreeItem): added wrapper for + treeitem->subtree attribute. + + * pyglade/build.py (text_new): small fix. + +1999-05-19 James Henstridge <james@daa.com.au> + + * NEWS: added news about changes in this version. + + * configure.in, pygtk.spec: updated version number to 0.6.1. + +1999-05-13 James Henstridge <james@daa.com.au> + + * gtkmodule.c (PyGtk_item_factory_cb): forgot to wrap the function + call in PyGTK_{,UN}BLOCK_THREADS -- this was causing seg faults + for people with threading built into their python. + (PyGtk_MenuPosition): similar fix. + +1999-04-25 James Henstridge <james@daa.com.au> + + * gtk.py (GtkWidget.get_allocation): a wrapper for the new function. + + * gtkmodule.c: added a routine for getting the allocation of a widget. + +1999-04-22 James Henstridge <james@daa.com.au> + + * NEWS: added a summary of the new features. + + * pygtk.spec: upped version number. + + * configure.in: upped version number to 0.6.0. I think thread support + is a big enough feature to bump it up to 0.6. + +1999-04-21 James Henstridge <james@daa.com.au> + + * gtk.py (create_bitmap_from_data): added new wrapper. + + * gtkmodule.c: added gdk_bitmap_create_from_data function. Also + export PyGtk_BlockThreads and PyGtk_UnblockThreads through the + _private dictionary, so they can be used from within other modules + (gnome-python in particular). + +1999-04-20 James Henstridge <james@daa.com.au> + + * pygtk.spec: updated package version number. + + * configure.in: added a check for the python thread module. If it + is found, then also link _gtkmodule to the gthread library. + Incremented minimum GTK version to 1.2.1. + Incremented version to 0.5.13. + + * gtkmodule.c: call g_thread_init if python was built with thread + support. This is required to turn thread support on inside gdk/gtk. + + * gtk.py: added new functions. + (GtkList.insert_items): this function wasn't looking at the internal + GtkObject for the children to insert, so would fail. + + * generate/gtkbase.defs (gtk_widget_accelerators_locked): new func. + + * generate/gtkmenus.defs (gtk_item_factory_add_foreign): new func. + (gtk_menu_get_accel_group): new func. + (gtk_menu_reorder_child): new func. + (gtk_menu_shell_deselect): new func. + + * gtkmodule.c (_wrap_gtk_combo_set_popdown_strings): accept any + sequence for the second argument, rather than just lists. + (_wrap_gtk_init): check the return value, and throw an exception + when a connection to the X server could not be made, rather than + exiting. + + * gtk.py: got rid of some warnings when pygtk is imported when + DISPLAY is not set. Not completely necessary, but it doesn't hurt. + (GtkObject.remove_data) fixed small bug pointed out by Duncan Grisby. + +1999-04-08 James Henstridge <james@daa.com.au> + + * gtk.py (threads_enter,threads_leave): export these two new functions. + + * gtkmodule.c: applied a modified version of Duncan Grisby's threading + patch. The changes were mainly inlining some of the code with macros + and making it so that the extra code was not added unless python + was compiled with thread support. Also added wrappers for + gdk_thread_enter and gdk_thread_leave. + + * gtk.py (GtkList.{,un}select_item): fixed small bug reported by + Ben Darnell. + + * gtkmodule.c: fixed some small bugs in gtk_ctree stuff. Thanks go + to Chi-Deok Hwang. Also fixed the bug in gtk_clist where I copy + and pasted from. + + * gtk.py (GtkNotebook.set_tab_label_text): Small typo. Fix from + Toby D. Reeves. + +1999-03-13 James Henstridge <james@daa.com.au> + + * examples/testgtk/testgtk.py: Applied some fixes from Chi-Deok Hwang + to this example. Mainly clean ups needed because of me not changing + testgtk with the rest of pygtk. + +1999-03-12 James Henstridge <james@daa.com.au> + + * configure.in, pygtk.spec: increased version number to 0.5.12. + + * gtkmodule.c: added optional support for not catching exceptions in + callbacks. This way it should be a lot easier to debug a pygtk + program with pdb. + + * gtkmodule.c, gtk.py: a few fixes for problems sent in by + Chi-Deok Hwang. This includes a fix to GtkWidget.event(), + assignments to GtkStyle attributes throwing exceptions, + font loading getting reference counting correct and throwing + exceptions for bad font names and allowing None to be passed + as a colour to GnomeCanvasItem.set() (the fix is in pygtk). + + * generate/gtklists.defs (gtk_ctree_new): I had missed this + function in previous releases. + +1999-02-24 James Henstridge <james@daa.com.au> + + * gtk.py: made changes to match those in the defs files and _gtk. + + * description.py (GdkGC.set_dashes): describe new GdkGC method. + + * generate/gtkcontainers.defs: removed gtk_window_set{focus,default}, + since these are internal to GtkWindow. Also added + gtk_handle_box_set_handle_position and gtk_handle_box_set_snap_edge. + + * gtkmodule.c: added gtk_widget_get_child_requisition. + (PyGdkGC_GetAttr): added method GdkGC.set_dashes to set the dash + pattern for this GC. + +1999-02-23 James Henstridge <james@daa.com.au> + + * pyglade/build.py: added some code to get the option menu creation + code working. + + * pyglade/xmlparse.py: check if xmllib is included in the standard + python library, use it for the XML parser -- it is much more complete, + and doesn't barf on some valid XML files like the old one does. If + xmllib is not found, the old parser is used. + + * README, Makefile.am, pygtk.spec: added references to the MAPPING + file. + + * MAPPING: new file describing the mapping of GTK+ onto python as + pygtk does it. + +1999-02-22 James Henstridge <james@daa.com.au> + + * description.py (GdkCursor): added information about this type. + + * gtk.py: commented out the __getattr__, __setattr__ and __delattr__ + methods of GtkObject. There were too many things that broke because + of these changes. If I can get these to work correctly in the + future, I will consider re-enabling it, but not till then. + + * examples/testgtk/testgtk.py (create_cursor_test): added a cursor + test to the python testgtk. It is adapted from the translation sent + in by Osamu Tanimoto. + + * gtkmodule.c: fixed a bit of bad copy'n'paste in the GC part of the + style wrapper code. Thanks go to Osamu Tanimoto <tanimoto@rios.co.jp>. + (PyGdkCursor_GetAttr): now GdkCursor objects have a type attribute + that returns the type number for the object, and a name attribute + that gives a string representation of that type number. + +1999-02-20 James Henstridge <james@daa.com.au> + + * gtk.py (GtkTooltips.set_tip): made tip_private argument optional. + (GtkObject.__[gs]etattr__, GtkObject.__delattr__): added some more + fixes to this code so that it shouldn't throw exceptions as much + when it shouldn't. + + * gtkmodule.c: PyGdkEvent_New wasn't interpreting GDK_BUTTON_RELEASE + events correctly. Also some fix ups for gtk_menu_popup. + + * generate/gtkcontainers.defs (gtk_container_set_focus_child): allow + null child argument. + +1999-02-19 James Henstridge <james@daa.com.au> + + * gtk.py: added __getattr__ and __setattr__ methods to GtkObject so + that you can set data on a GtkObject directly in a persistent way + (reference counting problems prevent pygtk from always passing the + same python object to a callback). These functions ignore attributes + starting with an underscore. + Also modified all the other __getattr__ methods to call their + parent class's __getattr__ method when they fail instead of + raising an exception. + + * gtk.py: some changes to make use of the new null-ok flags. + + * generate/*.defs: added some null-ok tags where appropriate. + + * gtkmodule.c: removed gtk_frame_new, as the null-ok change in + generate.py makes it unnecessary. Also gtk_spin_button_new_no_adj + has been removed because it is no longer necessary. + + * generate/generate.py (FunctionDefsParser.define_func): altered the + code generation routines so that they recognise the (null-ok) tag in + the .defs file. This should give a lot more flexibility to the + generator, and allow me to move some of the special case code in + gtkmodule.c back to the .defs files. The null-ok tag is currently + only recognised for string, object and boxed type arguments. + + * gtkmodule.c: fixes to the gtk_window_set_geometry_hints function to + throw an exception for bad aspect values. Also let it understand + integers for aspect values. + Also fixed up gtk_menu_popup so that you could give None for a few + more arguments. + +1999-02-16 James Henstridge <james@daa.com.au> + + * description.py: added documentation about GtkStyle changes to this + pseudo module. + + * gtkmodule.c: added a new python type GtkStyleHelper that is used + by python GtkStyle objects as a sequence type that alows us to write + back to the arrays in the GtkStyle object. I have also made it + possible to update the font and (black|white){,_gc}. I also added + a GtkStyle.copy() method. This gives the user everything they need + to alter styles inside their applications. I still believe that + rc files are better, but there seem to be a lot of people who want + this functionality. + + * gtkmodule.c (_wrap_gtk_window_set_geometry_hints): made changes so + apect ratios can be set to integers. Also made it throw an exception + for aspect ratios of zero, since this caused my X server to crash + a few times. + +1999-02-15 James Henstridge <james@daa.com.au> + + * gtk.py (GtkPaned.set_position): added function. + + * generate/gtkcontainers.defs (gtk_paned_set_position): added new + function + +1999-02-14 James Henstridge <james@daa.com.au> + + * gtk.py: added GtkWindow.set_geometry_hints to match below addition. + + * gtkmodule.c: added gtk_window_set_geometry_hints. + +1999-02-08 James Henstridge <james@daa.com.au> + + * description.py (GdkWindow.depth): documented presence of this + attribute. + + * gtk.py (GtkFileSelection.complete): I had left out the argument in + this prototype. Fixed now. + +1999-02-04 James Henstridge <james@daa.com.au> + + * gtk.py (create_pixmap_from_xpm,create_pixmap_from_xpm_d): altered + these functions to use the gdk_pixmap_colormap_create variants if + the first argument is a GtkWidget or GtkStyle. This means you + don't have to realise the widget before creating pixmaps from it. + (GtkCheckMenuItem.set_state, GtkToggleButton.set_state): removed + these compatibility routines so they don't mask GtkWidget.set_state. + + * gtkmodule.c: moved gtk_item_factory_get_widget here so I can catch + NULL returns and convert them to None returns. Also added the + depth attribute to GdkWindow objects. + Also added gdk_pixmap_colormap_create_* variants. These can be used + if you only have a colormap reference, rather than a window. + + * GtkExtra.py: there were a couple of calls to + GtkContainer.border_width which is deprecated. + + * examples/testgtk/testgtk.py: fixes to dnd code in this example. I + hadn't looked at it since Owen made the dnd changes. + + * examples/simple/tooltip2.py: fixed small bug pointed out by Markus + Oberhumer. + + * pyglade/build.py (clist_new): fixes to make it parse after clist + changes. + +1999-02-02 James Henstridge <james@daa.com.au> + + * generate/gtklists.defs, gtk.py: added GtkCList.focus_row. + + * _gdkimlibmodule.c, GdkImlib.py: added push_visual and pop_visual, + that can be used to easily set GTK to use the imlib visual/colormap + combination. + + * gtkmodule.c: the PyObject -> GtkArg conversion routines were not + catching some exceptions that they generated. This would cause + wierd problems if you passed the wrong argument types to signal + handlers. This was found by Chi-Deok Hwang <cdhwang@sr.hei.co.kr> + + * examples/simple/dnd.py, examples/simple/dndpixmaps.py: and example + of drag and drop contributed by Chi-Deok Hwang <cdhwang@sr.hei.co.kr> + + * gtkmodule.c: added gtk_ctree_get_selection, that returns nodes + rather than pointers. + + * gtk.py: made changes to reflect those below. Also added + GtkWidget.get_colormap() (it was missing previously). + + * generate/gtkedit.defs (gtk_spin_button_update): added function. + + * generate/gtkmenus.defs (gtk_check_menu_item_set_active): function + renaming. + (gtk_menu_set_title): added function. + + * generate/gtkmisc.defs (gtk_toggle_button_[sg]et_active): added + functions, and removed gtk_toggle_button_set_state. + +1999-01-27 James Henstridge <james@daa.com.au> + + * gtkmodule.c: fixed some typos in _wrap_gtk_ctree_get_row_data and + _wrap_gtk_ctree_base_nodes. This fix was sent to me by Jim + Robinson <robinson@ipsg.mot.com>. + +1999-01-26 James Henstridge <james@daa.com.au> + + * gtk.py: fixed typo in GtkProgress.configure. + +1999-01-22 James Henstridge <james@daa.com.au> + + * gdkimlibmodule.c: (_wrap_gdk_imlib_create_image_from_data): function + would raise an exception if there was a null in the data or alpha + arguments. Also added some sanity checks on the lengths of data + and alpha. This patch was submitted by Toby D. Reeves. + +1999-01-21 James Henstridge <james@daa.com.au> + + * examples/testgtk/testgtk.py (create_scrolled_windows): changed + a call to GtkContainer.add to GtkScrolledWindow.add_with_viewport. + + * gtk.py (GtkPacker.add): Added defaults for the arguments. + +1999-01-11 James Henstridge <james@daa.com.au> + + * gtk.py (GtkProgress.get_current_percentage): fixed function call + + * gtk.py (GtkScrolledWindow): changed so it inherits from GtkBin + instead of GtkContainer, to match changes in GTK. + + * GDK.py (DRAG_PROTO_ROOTWIN): Added the constant. + + * gtkmodule.c: forgot to include GTK_TYPE_DOUBLE in one of the GtkArg + processing routines. Also fixed a problem for events with a NULL + window. + +1998-12-24 James Henstridge <james@daa.com.au> + + * gdkimlibmodule.c(_wrap_gdk_imlib_get_rgb_height): I accidentally + returned rgb_width instead of rgb_height. This bug report was from + Osamu Tanimoto <tanimoto@rios.co.jp>. + +1998-12-22 James Henstridge <james@daa.com.au> + + * GtkExtra.py: modified the signal connect bit in the MenuFactory + code so it is a bit more sane. + +1998-12-21 James Henstridge <james@daa.com.au> + + * pygtk.spec: updated version here as well. + + * README: updated required GTK version to 1.1.9 + + * configure.in: Updated version for pygtk to 0.5.9, increased + GTK version check to 1.1.9. + +1998-12-20 James Henstridge <james@daa.com.au> + + * gtkmodule.c, generate/gtkmisc.defs: moved gtk_preview_draw_row here + because python's string conversion routines do not like nuls in a + string, but you quite often want them in image data. + +1998-12-17 James Henstridge <james@daa.com.au> + + * examples/*/*.py: changed calls to GtkLabel.set to GtkLabel.set_text. + + * gtk.py: made changes to reflect those below. + + * generate/gtkbase.defs (gtk_widget_set_app_paintable): added this + stub. + + * generate/gtkmisc.defs (gtk_label_set_text): renamed gtk_label_set to + this, added gtk_label_set_line_wrap. + + * generate/gtkdnd.defs: Added gtk_drag_source_unset. + + * generate/gtklists.defs: moved reordering function stubs from ctree + to clist. + + * generate/gtkcontainers.defs: removed GtkDrawWindow. Added + gtk_paned_pack[12] + + * GtkExtra.py (MenuFactory.create): wasn't passing extra arguments + onto signal connect. Bug fix from Sam Tannous <stannous@cisco.com> + + * gtkmodule.c: Applied some fixes to the ctree code from + A.Hartgers@phys.tue.nl + +1998-12-09 James Henstridge <james@daa.com.au> + + * gtk.py, generate/gtkmisc.defs, GTK.py: Added + gtk_toolbar_set_space_style and the required enum. + +1998-12-08 James Henstridge <james@daa.com.au> + + * gtkmodule.c: fixed up the toolbar functions, so they also use + gtk_signal_connect_full, and now return the added child, like + the C functions do. + + * examples/testgtk/testgtk.py: fixed up some stuff in the main + function and clist test. + + * gtk.py, generate/gtkcontainers.defs: added + gtk_window_set_transient_for and gtk_window_set_default_size. + + * gtkmodule.c: Changed to use _full functions instead of _interp + functions. Also made gtk_signal_connect and friends use the + gtk_signal_connect_full function rather than the default marshaller + method. + +1998-12-07 James Henstridge <james@daa.com.au> + + * generate/gtkcontainers.defs (gtk_viewport_new): Accept NULL + arguments for adjustments of a viewport. This is the correct + fix for Michael's other patch. + + * examples/*/*.py: got rid of deprecation messages. Put scrolled + windows round all clists. + + * pyglade/build.py: Fixes a bug in scrolledwindow_new pointed out + by Michael Hudson. Also made some changes so that it doesn't use + any deprecated functions. + + * gtkmodule.c: fixed two typos pointed out by Michael Hudson + +1998-12-05 James Henstridge <james@daa.com.au> + + * gtkmodule.c, generate/*.defs, gtk.py: updated to latest CVS. This + includes the function name changes Tim Janik introduced. I have + added backward compatibility wrappers for the old functions in gtk.py, + which also print out a deprecation message. + +1998-12-01 James Henstridge <james@daa.com.au> + + * gtk.py (GtkLayout): I had left a few remnants from when this class + was in gnome.ui. This is now fixed. + +1998-11-29 James Henstridge <james@daa.com.au> + + * description.py: Added a description of the GtkCTreeNode type. + + * gtk.py (GtkCTree): Added the GtkCTree class to this layer. + Hopefully I haven't made any mistakes. + +1998-11-28 James Henstridge <james@daa.com.au> + + * generate/gtklists.defs: added entries for GtkCTree. + + * gtkmodule.c: Added the GtkCTreeNode type. It exports some of the + attributes of the GtkCTreeRow associated with the node. Specifically, + the parent, next sibling links, and a list of children. This should + be enough attributes to make the type useful. + Also added extra functions for GtkCTree. + +1998-11-27 James Henstridge <james@daa.com.au> + + * generate/gtk*.defs: updated for GTK+-1.1.5. + + * gtkmodule.c: added the PyGtk_RegisterBoxed function, exported through + the _private dictionary. This allows adding extra boxed types so they + will be recognised in signal handlers and the like. + + * gtk.py: this file used to be Gtkinter.py. People should make this + change in their programs. Also updated for changes to the API. + + * Gtkinter.py: new file. Simply does a "from gtk import *", so old + programs will still run properly. + + * examples/*/*.py, pyglade/*.py, GdkImlib.py, GtkExtra.py: changed + occurences of Gtkinter to gtk. + +1998-11-17 James Henstridge <james@daa.com.au> + + * GdkImlib.py: missed a closing parenthesis. This caused problems. + + * generate/gtk.defs(gtk_rc_add_*_style): removed these functions. + They weren't exported by Gtkinter, and their declaration has changed + in newer GTK+'s. Now pygtk should compile with both GTK+-1.1.3 and + CVS GTK (tested for a 1998-11-16 checkout). + + * configure.in, NEWS: bumped version up to 0.5.5, and made new release. + + * generate/gtkmisc.defs, Gtkinter.py: added the GtkCalendar widget. + +1998-11-15 James Henstridge <james@daa.com.au> + + * gtkmodule.c: added GdkCursor type. + + * gtkmodule.c(GdkWindow.set_cursor): function to set cursor for window + + * generate/gtk.defs (gtk_cursor_*): new functions to create cursors + + * gtkmodule.c(gtk_pixmap_create_from_xpm_d): new function to create + a GdkPixmap from a list of strings (XPM data). This allows you to + store pixmaps inline with your program for distribution. + + * gdkimlibmodule.c: export the GdkImlibImageType, and a _private + dictionary that holds exported functions. I should be able to + add the GdkImlibImage dependent functions to _gnomeui now. + + * GDK.py, GTK.py: updated with new constants. + + * examples/simple/*1.py: stopped importing _gtkbase, and don't call + _gtk.pygtk_init(). + + * pyglade/build.py: added menu widgets to the interface building code. + + * pygtk.spec: new file -- an RPM spec file for this package. + + * NEWS: add information about this new version. + +1998-11-15 James Henstridge <james@daa.com.au> + + * gtkmodule.c: added GdkAtom handling. There is now a special type for + GdkAtoms that can be cast to string and int with str() and int() + respectively, and it supports coercions, so it should act like an + int in most cases. Functions that take GdkAtom's as arguments + actually take ints, so backward compatibility is kept, but functions + that return GdkAtoms now return this special type. + + * gtkmodule.c, generate/gtkdnd.defs, Gtkinter.py: added the new DnD + code, and support for selections. The gtk_selection_* functions have + been mapped to GtkWidget.selection_*, and the gtk_drag_* functions + have been mapped to GtkWidget.drag_* + + * GdkImlib.py: added function create_image_from_data, so you can + create an image from raw RGB data. Also added the Image.get_pixmap + method, which is like Image.make_pixmap, except it returns the + GdkPixmap,GdkBitmap pair, instead of a GtkPixmap widget. + +1998-11-14 James Henstridge <james@daa.com.au> + + * generate/*.defs: changes to bring pygtk up to date with GTK+-1.1.3 + +1998-11-13 James Henstridge <james@daa.com.au> + + * gtkmodule.c: added wrappers for GdkDragContext and GtkSelectionData. + Also removed all the old DnD GdkEvent mappings, and added the + GdkEventDND mapping. This should be enough to get the new Dnd signals + working. + + * generate/gtkbase.defs, gtkmodule.c(_wrap_gtk_widget_dnd_*): removed + the old gtk_widget_dnd_* functions from the bindings. + +1998-11-10 James Henstridge <james@daa.com.au> + + * build system: Converted over to using automake. Note thay some + modifications have been made to the original version of automake, + so you will need to apply my patches if you want to modify pygtk. + + * swigsrc/*: removed. I am now using some code generation tools + that take .defs files as input. + + * gdkimlibmodule.c: got rid of all the swig stuff, and cleaned up the + code a bit. This has reduced the source code size by half. + +1998-11-10 James Henstridge <james@daa.com.au> + + * ChangeLog: started change log. Old Changelog file has been moved + to NEWS + + * NEWS: used to be Changelog + |