2003-09-01 James Henstridge * configure.in: increment version number. * NEWS: add news items. 2003-08-31 James Henstridge * 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 * PKG-INFO.in (Classifier): add PKG-INFO file for submission to Python package index. 2003-08-25 John Finlay * 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 * 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 * gtk/gtktreeview.override (_wrap_gtk_list_store_remove): Move to autogenerated, since it need to return a GtkTreeIter. 2003-08-02 James Henstridge * 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 (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 * 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 * gtk/gdk.override: apply Elliot Lee's threading patch. Still need to fix the remaining threading problems. 2003-07-25 James Henstridge * 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 * 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 * gtk/gtk.override (_wrap_gtk_dialog_add_buttons): add add_buttons() method (bug #109620). 2003-07-23 Ian McKellar * gtk/Makefile.am: build fix 2003-07-22 James Henstridge * 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 * gtk/gdk.override (gdk_window_new) Wrap gdk_window_new as a constructor for gtk.gdk.Window(). Fixes #117860. 2003-07-20 James Henstridge * 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 * 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 * 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 * 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 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 * dsextras.py (pkgc_version_check): remove "self.", fixing bug 111002 (pointed out by Seth Nickell). 2003-07-01 John Finlay * 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 * gobjectmodule.c (pyg_error_check) Replace first pyg_unblock_threads with pyg_block_threads. Fixes #116284. 2003-06-30 James Henstridge * 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 * 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 * (lots of stuff): add copyright notices, and update to LGPL 2.1. 2003-06-23 Gustavo J. A. M. Carneiro * 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 * gtk/gdk.override (_wrap_gdk_drawable__get_handle): fix bug 114619 (the #define we were using was private). 2003-06-12 Joe Shaw * gtk/gdk.override (_wrap_gdk_pixbuf_loader_write): Fix an invalid python format string. 2003-06-06 Johan Dahlin * gobjectmodule.c (get_handler_priority): Fix bogus strcmp. Thanks to John Ehresman for spotting this. Fixes #110489 2003-06-05 Johan Dahlin * 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 * 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 * 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 * 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 * 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 * 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 * codegen/scmexpr.py (parse): convert to a generator to allow incremental parsing of defs files. 2003-05-23 Gustavo J. A. M. Carneiro * 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 * 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 * gtk/Makefile.am (pygtk_PYTHON): Install dsextras. 2003-04-27 Johan Dahlin * setup.py (py_modules): Install dsextras.py 2003-04-12 Naofumi Yasufuku * 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 * pygobject-private.h: add missing "extern" keyword (from Glyph's patch). 2003-03-23 James Henstridge * 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 * 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 * gtk/gdk.defs (get_option): Added. 2003-03-13 James Henstridge * gobjectmodule.c: add doc comments. * pygobject.c: add doc comments. * pygboxed.c: add doc comments. 2003-03-12 James Henstridge * pygtype.c: add some documentation. 2003-03-11 James Henstridge * 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 * 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 * 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 * 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 * 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 * gobjectmodule.c (pyg_io_add_watch): Fix function name in exception. 2003-02-27 Johan Dahlin * dsextras.py (getstatusoutput): Small typo. * setup.py: Cut the doclines, to make the windows installer happy 2003-02-26 Johan Dahlin * 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 * 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 * 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 * 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 * 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 * gtk/gdk.override: Only call import_array if we HAVE_NUMPY. 2003-01-30 James Henstridge * 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 * gtk/gtk-types.defs (Layout): Wrap bin_window. 2003-01-24 Johan Dahlin * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gtk.override (_wrap_gtk_icon_size_lookup): Wrap. The width and height are returned as a tuple. 2003-01-09 Joe Shaw * 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 * setup.py: Make building with threading work (again). 2003-01-08 Jon Trowbridge * 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 * 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 * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): pyg_unblock_threads was being called twice. 2003-01-05 Johan Dahlin * gtk/libglade.override: protect config.h by an ifdef. 2003-01-01 Johan Dahlin * 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 * gtk/gtk.defs (set_cursor): Set default parameters. 2002-12-28 Johan Dahlin * 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 * 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 * gtk/gtk.defs: Added -1 as default to second parameter, patch by John Finlay, fixes #102083. 2002-12-28 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gdk.override: Integrate patch by David I. Lehn, improves threading support, fixes #98380. 2002-12-18 Johan Dahlin * 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 * 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 * 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 * pango.defs (pango_tab_array_new): Add, and make constructor of PangoTabArray. 2002-12-08 Johan Dahlin * 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 * gtk/gtk.override (_wrap_gtk_tree_selection_get_selected): Impl. Fixes #100389. 2002-12-05 James Henstridge * gtk/gtk.defs (create_pango_context): caller owns return. (create_pango_layout): caller owns return. 2002-12-04 Johan Dahlin * 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 * gtk/gtk.override (_wrap_gtk_tooltips__get_tips_data_list): Impl. (_wrap_gtk_tooltips__get_tips_data_list): 2002-11-28 Johan Dahlin * 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 * 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 * 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 * codegen/argtypes.py (PyObjectArg): arg matcher for "PyObject*" args, from bug #98822. 2002-11-19 James Henstridge * 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 * 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 * 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 in a element. (DocbookDocWriter.write_constructor): same here. (DocbookDocWriter.write_params): wrap parameter description in a 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gdk.defs (get_from_drawable): GdkPixbuf.get_from_drawable doesn't actually leak pixbuf, remove caller-owns-return. 2002-09-02 Matt Wilson * gtk/gdk.defs (get_from_drawable, copy, add_alpha, scale_simple composite_color_simple): more caller-owns-return. 2002-08-31 James Henstridge * codegen/docgen.py (DocbookDocWriter.write_params): separate out the code that writes the variable list. 2002-08-30 Sander Vesik * autogen.sh: use automake-1.6/aclocal-1.6 unless otherwise requested 2002-08-30 Matt Wilson * 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 * codegen/argtypes.py: Add gsize and gssize as valid integer types. 2002-08-26 James Henstridge * 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 * 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 mingw32 patches from Cedric Gustin : * 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 * codegen/argtypes.py (arg): More char* variants. 2002-08-20 James Henstridge * gtk/gdk.defs (gtk.gdk.Window.set_title): fix up typo. 2002-08-20 Johan Dahlin Patch from Arjan J. Molenaar: * gobjectmodule.c (pyg_type_register): Don't unref borrowed references. 2002-08-19 James Henstridge * 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 * 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 * codegen/argtypes.py (TimeTArg.write_param): Add a time_t parameter type. 2002-08-17 James Henstridge * 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 * gtk/gdk.defs: Add null-ok to GdkWindow.set_cursor. Fixes #88463. 2002-07-23 James Henstridge * configure.in: updated version number. 2002-07-20 James Henstridge * 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 * gtk/Makefile.am (glademodule_la_LDFLAGS): fix up -export-symbols-regex flag. (glmodule_la_LDFLAGS): same here. 2002-07-15 James Henstridge * 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 * 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 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 * 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 * 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 * 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 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 * 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 * 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 * 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 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 * 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 * gtk/gtk.override (pygtk_menu_position): fix up menu position func (fixes bug #85994). 2002-06-27 James Henstridge * gtk/gtk.defs (check_version): caller does _not_ own the returned string. Bug found by Anders Carlsson. 2002-06-24 James Henstridge * gtk/gtk.defs (drag_source_set_icon_pixbuf): fix definition, as reported by Thomas Leonard Sun Jun 23 11:10:30 2002 Jonathan Blandford * 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 * 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 * gtk/gtk.override (_wrap_gtk_ctree_insert_node): check the correct value when setting the sibling. Patch from Tim Waugh 2002-06-18 Matt Wilson * gtk/gtk.override (_wrap_gtk_tree_sortable_get_sort_column_id): implement GtkTreeSortable.get_sort_column_id 2002-06-18 James Henstridge * 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 * 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 * pango.defs: added PangoLayout.set_text Mon Jun 17 09:52:45 2002 Jonathan Blandford * gtk/gtk-types.defs: Add GtkRequisition * gtk/gtk.override: Add GtkRequisition 2002-06-15 James Henstridge * gobjectmodule.c (pyg_error_check): decref the exception instance after raising the error. Fri Jun 7 12:39:27 2002 Jonathan Blandford * gtk/gtk.override (pygtk_tree_selection_foreach_marshal): fix GtkTreeSelection::get_selected() 2002-06-09 James Henstridge * 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 * 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 * 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 * 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 * gtk/Makefile.am (pygtk_PYTHON): install compat.py 2002-05-18 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gtk.override (_wrap_gtk_tree_model_get_value): fix typo. I should test these things before committing. 2002-05-05 James Henstridge * 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 * 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 * 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 * gtk/gtk.defs (gtk_spin_button_new): s/gbutton/gdouble/ from Art Haas. 2002-04-25 James Henstridge * 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 * gtk/gtk-types.c: remove old commented out GdkGC implementation. 2002-04-22 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 2002-04-17 James Henstridge * gtk/gtk.defs, gdk/gdk.defs: updates to match final gtk 2.0 APIs. 2002-04-15 James Henstridge * 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 * 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 * 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 * pango.override (_wrap_pango_glyph_string_get_logical_widths): add wrapper. (_wrap_pango_parse_markup): add wrapper. 2002-03-28 Johan Dahlin * gtk/gdk.defs: Add functions from gdkkeys.h * gtk/gdk-types.defs: Add GdkKeymap object 2002-03-22 James Henstridge * gtk/libglade.override (connect_many): don't decref the return value of PyDict_GetItemString(). 2002-03-22 Johan Dahlin * codegen/codegen.py: move type_tmpl to Wrapper class, saves 100 loc 2002-03-22 James Henstridge * 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 * 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 * gobjectmodule.c: remove pygobject_exception_notifiers and pyg_fatal_exceptions_notify. 2002-03-18 James Henstridge * 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 * 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 * 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 * 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 * 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 * gtk/gtk-types.defs (Window): Add 33 new fields 2002-03-10 James Henstridge * 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 * 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 * 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 * gtk/gdk.defs: Add functions from gdk-pixbuf-loader.h * gtk/gdk-types.defs: Add GdkPixbufLoader object 2002-02-27 Matt Wilson * configure.in: increase micro version of package (1.99.8) 2002-02-25 Johan Dahlin * 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 * 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 * gtk/gtk.defs (create_item): remove defs for removed GtkItemFactory functions. Fixes bug #69815. 2002-02-12 Johan Dahlin * gobjectmodule.c (initgobject): Fix a leak * gtk/gtkmodule.c (init_gtk): Fix another one 2002-02-06 Matt Wilson * 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 * examples/pygtk-demo/demos/list_store.py: add toggle for the check box column. 2002-02-05 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * pygobject.c: move GObject wrapper stuff here. 2002-01-22 Johan Dahlin * 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 * 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 * 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 * gtk/gtk.override (_wrap_gtk_radio_button_get_group): implemented GtkRadioButton.get_group 2002-01-16 James Henstridge * 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 * 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 * gtk/Makefile.am: Register gtk-types here, so XML.get_widget works. 2002-01-12 James Henstridge * 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 * 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 * 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 * codegen/h2def.py (find_obj_defs): handle typedef struct { ... } style type defs, as used in bonobo. 2002-01-09 Matt Wilson * 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 * gtk/__init__.py (threads_*): provide these functions in the gtk namespace as well as gtk.gdk. 2002-01-07 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * atk.defs: remove atk_attribute_get_name/value (again). 2001-12-10 Matt Wilson * gtk/libglade.defs: added missing defs. * atk.defs: add missing defs. 2001-12-09 James Henstridge * 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 * gtk/gtk.defs (GtkTable.get_row_spacing): one more missing defs entry. 2001-12-07 Matt Wilson * 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 * 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 * 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 * 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 * gtk/gtk.override (_wrap_gtk_list_store_set, _wrap_gtk_tree_store_set): added. 2001-12-03 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.in: bump up required versions of gtk, pango, and glib. 2001-11-26 Matt Wilson * configure.in: 1.99.5 2001-11-20 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gtk.defs (GtkTreeStore.clear): added 2001-10-29 James Henstridge * gtk/gtk.defs: remove gtk_cell_renderer_toggle_[gs]et_active. 2001-10-26 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * codegen/h2def.py (define_func): convert all argument type whitespace to '-'. 2001-10-15 Matt Wilson * 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 * 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 * 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 * gobjectmodule.c (pygobject_dealloc): also go set up the reflist if we're doing refcount debugging. 2001-10-11 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gobjectmodule.c (pygobject_emit): mask out G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission. 2001-10-05 Johan Dahlin * 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 * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): fixed argument format string. 2001-10-03 Matt Wilson * gtk/gdk.defs (Rectangle): added definition for GdkRectangle 2001-10-04 Matthew Wilson * 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 * gtk/gtk.override (_wrap_gtk_item_factory_create_items): fixed non-compiling function. 2001-10-04 Johan Dahlin * 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 * pygtk.spec: spec file changes. * gtk/gtk.defs (AccelGroup): this is an object now -- not a boxed. 2001-10-03 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * examples/pygtk-demo/demos/dnd.py: port to new namespace 2001-09-29 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gtk.defs (get_has_resize_grip): bound (set_has_resize_grip): bound 2001-09-24 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 * pango.defs: update for newer Pango API. 2001-09-19 James Henstridge * 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 * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): add a cast in pointer comparison to squelch compiler warning. 2001-09-18 Matt Wilson * 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 * gobjectmodule.c (pyg_object_class_list_properties): rename to gobject.list_properties. 2001-09-18 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * 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 merge from short-class-names-branch 2001-09-12 James Henstridge * 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 * 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 * 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 * autogen.sh: add check and usage for AUTOMAKE and ACLOCAL. 2001-09-06 James Henstridge * 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 * 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 * 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 * 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 * gobjectmodule.c (initgobject): add a gobject.TYPE_PYOBJECT constant for the PyObject boxed typecode. 2001-07-08 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * examples/gobject/signal.py: register new types. 2001-05-06 James Henstridge * 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 * 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 * 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 * autogen.sh: fix up autogen script to call autoheader * gtk/gtk.defs: remove colorsel palette manipulation functions. 2001-05-01 Matthew Wilson * 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 * 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 * codegen/docgen.py, codegen/docextract.py: start of automatic documentation generator. 2001-04-08 James Henstridge * 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 * gtk/gtk.defs: lots of defs file updates. 2001-04-06 James Henstridge * codegen/h2def.py: add --onlyobjdefs flag to script. 2001-03-30 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * gtk/gtk-types.c (pygtk_text_iter_forward_to_delimiters): rename function. 2000-12-14 James Henstridge * 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 * examples/testgtk/demos/treemodel.py (MyTreeModel.on_get_path): fix small typo. 2000-12-06 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * gobjectmodule.c (pygobject_dealloc): start of gobject wrapper. 2000-06-19 Frederic Gobry * 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 * 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 * 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 * (lots of files): switch over to using libtool and automake-1.4a. 2000-03-13 James Henstridge * 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 * 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 The following is from Paul Clifford * 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 * 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 * 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 * gtkmodule (GtkRet_FromPyObject): added missing break in switch. 2000-02-21 James Henstridge * gtk.py (GtkTable.resize): added missing function. Patch from wrobell . * generate/gtkcontainers.defs (gtk_table_resize): added missing function. 2000-02-20 James Henstridge * gtk.py (GtkCList.get_[hv]adjustment): apply fix from Martin Preishuber. 2000-02-16 James Henstridge * configure.in, pygtk.spec: updated version to 0.6.4 2000-01-27 Elliot Lee * gtk.py: s/sel/self/ in GtkSpinButton.get_adjustment() 2000-01-26 James Henstridge * 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 * gtk.py (gdk_beep): new wrapper * gtkmodule.c (_wrap_gdk_beep): new implementation 2000-01-21 Matt Wilson * 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 * 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 * gtk.py (GtkCList.row_move): s/soure_row/source_row/g typo 2000-01-17 Matt Wilson * gtkmodule.c: following changes from ChiDeok Hwang * 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 * 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 * gdkimlibmodule.c, gtkglmodule.c, gtkmodule.c: Patch from ChiDeok Hwang to decref PyObjects retrieved by PySequence_GetItem. 1999-12-18 Matt Wilson * gtkmodule.c (_wrap_gtk_clist_get_rows): removed function * generate/gtklists.defs (GtkCList): add field for rows 1999-12-16 Matt Wilson * gtk.py (GtkCList.__getattr__): oops - left out the _gtk. part 1999-12-15 Matt Wilson * 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 * 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 * 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 * 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 * 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 * 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 * pygtk.spec: updated spec file, and added subpackages pygtk-glarea and pygtk-libglade. Also incremented version number. 1999-08-08 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * gtk.py (gdk_flush): new wrapper * gtkmodule.c (_wrap_gdk_flush): new implementation 1999-07-19 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * NEWS: added news about changes in this version. * configure.in, pygtk.spec: updated version number to 0.6.1. 1999-05-13 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 . (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 * 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 * 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 * 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 * gtk.py (GtkPaned.set_position): added function. * generate/gtkcontainers.defs (gtk_paned_set_position): added new function 1999-02-14 James Henstridge * gtk.py: added GtkWindow.set_geometry_hints to match below addition. * gtkmodule.c: added gtk_window_set_geometry_hints. 1999-02-08 James Henstridge * 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 * 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 * 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 * examples/simple/dnd.py, examples/simple/dndpixmaps.py: and example of drag and drop contributed by Chi-Deok Hwang * 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 * 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 . 1999-01-26 James Henstridge * gtk.py: fixed typo in GtkProgress.configure. 1999-01-22 James Henstridge * 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 * 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 * 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 * gdkimlibmodule.c(_wrap_gdk_imlib_get_rgb_height): I accidentally returned rgb_width instead of rgb_height. This bug report was from Osamu Tanimoto . 1998-12-22 James Henstridge * GtkExtra.py: modified the signal connect bit in the MenuFactory code so it is a bit more sane. 1998-12-21 James Henstridge * 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 * 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 * 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 * gtkmodule.c: Applied some fixes to the ctree code from A.Hartgers@phys.tue.nl 1998-12-09 James Henstridge * gtk.py, generate/gtkmisc.defs, GTK.py: Added gtk_toolbar_set_space_style and the required enum. 1998-12-08 James Henstridge * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * generate/*.defs: changes to bring pygtk up to date with GTK+-1.1.3 1998-11-13 James Henstridge * 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 * 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 * ChangeLog: started change log. Old Changelog file has been moved to NEWS * NEWS: used to be Changelog