2004-07-19 Johan Dahlin * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): Return 1/0, instead of flagvalue/0 to avoid GObject complains. (_wrap_gtk_dialog_run): Simplify * gtk/libglade.override: Subclass GladeXML so we can wrap lookup_type. Add a new optional argument to GladeXML.__init__ that is a mapping object that will be used to translate types. Thanks to Gustavo for helping out. This should make kiko somewhat happy. Fixes bug 140071 * tests/enum.py (EnumTest.testWindowGetState): Fix, a window is really WITHDRAWN if it's not SHOWN and not ICONIFIED... * tests/common.py: Add .. and ../gobject when distcheck isn't ran * gobject/pygenum.c: Use a dict instead of a tuple for __enum_values__, so we can handle negative enum values (eg: GDK_NOTHING) * gobject/pyflags.c: Ditto for __flag_values__ * gobject/pygparamspec.c (pyg_param_spec_getattr): reference count fixing * gobject/Makefile.am: * setup.py: * makefile.msc: Update, why do I even bother to update 3 different build systems? * gobject/: Split out GParamSpec, GMainLoop, GMainContext and GPointer to separate files. Also remove *.h files and go back to the old scheme (everything in pygobject.h) * description.py: Remove, out of date since 0.6.x! * tests/Makefile.am, tests/common.py: Make distcheck pass 2004-07-18 John Ehresman * gobject/pygflags.c, gobject/pygenum.c, gobject/gobjectmodule.c (initgobject): Remove references to &PyInt_Type from static type struct initialization and manually set it before PyType_Ready calls * makefile.msc, gtk/makefile.msc, gobject/makefile.msc: VC++ makefile changes for new directory layout 2004-07-18 Johan Dahlin * gtk/gtk.override (_wrap_gtk_action_group_add_radio_actions) (_wrap_gtk_action_group_add_toggle_actions) (_wrap_gtk_action_group_add_actions): Add optional user_data argument. * gobject/pygflags.c (pyg_flags_get_value_nicks) (pyg_flags_get_value_names): New getters * gobject/pygenum.c (pyg_enum_get_value_nick) (pyg_enum_get_value_name): New getters * gobject/gobjectmodule.c (pyg_param_spec_getattr): add enum_class and flags_class properties. 2004-07-18 Gustavo J. A. M. Carneiro * gtk/gtk.defs (gtk_combo_new): Add deprectation warning. (gtk_item_factory_new): idem. (gtk_list_item_new): idem. (gtk_list_item_new_with_label): idem. (gtk_option_menu_new): idem. * gtk/gtkclist.override (_wrap_gtk_clist_new_with_titles): Give deprecation warning. * gtk/gtkctree.override (_wrap_gtk_ctree_new_with_titles): Give deprecation warning. * gtk/gtk.defs (plug_new_for_display): Deprecate, since the regular gtk.Plug constructor can accept a GdkDisplay now. * gtk/gtk.override (_wrap_gtk_plug_new): Override constructor, convert to g_object_new based; Add optional parameter 'display', available since Gtk 2.2. * gtk/gtktreeview.override (_wrap_gtk_tree_view_column_new): Convert constructor to property based. * gtk/gtk.defs (gtk_vscrollbar_new): Convert constructor to property based. (gtk_tree_view_new_with_model): idem. (gtk_text_view_new_with_buffer): idem. * gtk/gtk.override (_wrap_gtk_pixmap_new): Override _wrap_gtk_pixmap_new, construct with g_object_new. 2004-07-17 Johan Dahlin * tests/enum.py: add, forgot it in last commit * gobject/: Move gobject source files in here. 2004-07-17 Gustavo J. A. M. Carneiro * gtk/gtk.override (_wrap_gtk_dialog_new_with_buttons): Don't pass 'parent' property if no parent is given or is None. 2004-07-17 Johan Dahlin * codegen/codegen.py: * codegen/argtypes.py: Update for enums * pygtype.c (pyg_value_as_pyobject): Use new enum/flag functions * pygenum.[ch]: Handle GFlag * pygflags.[ch]: Handle GFlag * atk-types.defs: Fix gtype-id for all enums * gobjectmodule.c (initgobject): Clean up and add convinience macros * tests/enum.py: New file * tests/common.py: New file, also stole from gst-python 2004-07-17 Gustavo J. A. M. Carneiro * gtk/gtk.override (_wrap_gtk_table_new): Override to allow rows and columns default to 1, unlike the underlying gtk/C API which defaults to 0. 2004-07-15 John Finlay * gtk/gtk.override (_wrap_gtk_menu_item_new): Use AccelLabel instead of Label and dup MenuItem creation process. (_wrap_gtk_check_menu_item_new): idem (_wrap_gtk_radio_menu_item_new): idem. (_wrap_gtk_button_new): Set "use_underline" to TRUE when stock item (_wrap_gtk_check_button_new): Add optional argument 'use_underline', defaulting to TRUE. (_wrap_gtk_radio_button_new): idem. (_wrap_gtk_toggle_button_new): idem. (_wrap_gtk_message_dialog_new) Fix erroneous error message. #147421 2004-07-15 Gustavo J. A. M. Carneiro * gtk/gtk.override (_wrap_gtk_menu_item_new): add optional argument 'use_underline', defaulting to True. (_wrap_gtk_radio_check_menu_item_new): idem. (_wrap_gtk_radio_menu_item_new): idem. (_wrap_gtk_button_new): idem. Fixes #147421. 2004-07-13 Gustavo J. A. M. Carneiro * gtk/gtk.override (_wrap_gtk_button_new): Construct with g_object_new. (_wrap_gtk_toggle_button_new): idem. (_wrap_gtk_check_button_new): idem. (_wrap_gtk_radio_button_new): idem. (_wrap_gtk_menu_item_new): idem. (_wrap_gtk_check_menu_item_new): idem. (_wrap_gtk_radio_menu_item_new): idem. (_wrap_gtk_check_menu_item_new): idem. (_wrap_gtk_progress_bar_new_with_adjustment): idem. (_wrap_gtk_file_chooser_new): idem. (_wrap_gtk_color_button_new): idem. (_wrap_gtk_combo_box_new): idem. (_wrap_gtk_combo_box_entry_new): idem. (_wrap_gtk_file_chooser_widget_new): idem. (_wrap_gtk_font_button_new): idem. (_wrap_gtk_radio_tool_button_new): idem. (_wrap_gtk_toggle_tool__button_new): idem. (_wrap_gtk_tool_button_new): idem. (_wrap_gtk_entry_new): idem. (_wrap_gtk_dialog_new_with_buttons): idem. (_wrap_gtk_image_menu_item_new): Raise exception if attempted to subclass this object without calling __gobject_init__. (_wrap_gtk_message_dialog_new): idem. 2004-07-12 John Finlay * gtk/gtkwindow.override (set_geometry_hints) Fix arg format string. Fixes #147458. Thanks to Theo Reed. 2004-07-10 Johan Dahlin * tests/runtests.py: New script to run all tests in one take * tests/Makefile.am: autotoolify * tests/signal.py: New simple test taken from examples/gobject/signal.py 2004-07-08 Gustavo J. A. M. Carneiro * gtk/gtk.defs: Change to most constructors to property based. * codegen/codegen.py (GObjectWrapper.write_property_based_constructor): Handle propname != argname cases. * codegen/definitions.py (FunctionDef.__init__): Parse (argname "xxx") inside properties list, to support argname != propname. (Property.__init__): Accept new argname parameter. 2004-07-07 Gustavo J. A. M. Carneiro * codegen/definitions.py (FunctionDef.write_defs): Handle new properties syntax. * gtk/gdk.override (_wrap_gdk_colormap_alloc_color): Raise ValueError instead of TypeError if unable to parse colour specification. (_wrap_gdk_color_parse): idem. Fixes #144862. 2004-07-04 John Finlay * gtk/gtktreeview.override (_wrap_gtk_tree_model_rows_reordered) Allow None, () or "" for top level path. 2004-07-04 Gustavo J. A. M. Carneiro * gtk/gtk.defs (gtk_hbox_new): Change constructor to property based. * gobjectmodule.c (pyg_parse_constructor_args): Helper function invoked from the generated constructors. * codegen/codegen.py (Wrapper.write_constructor): Delegate to self.write_property_based_constructor() when appropriate. (GObjectWrapper.write_property_based_constructor): New constructor generator, that writes constructors that use g_object_newv and pass constructor arguments as properties. * codegen/definitions.py (Parameter): New Parameter class, to hold the items in (parameter ...). Emulates tuple for compatibility, but is more extensible. (Property): New property class, to hold (property ...) items. (FunctionDef.__init__): Parse (property ...), for new property based constructors. 2004-07-04 John Finlay * gtk/gtktreeview.override (_wrap_gtk_tree_store_new) Fix typo. (_wrap_gtk_tree_model_rows_reordered) Allow None for path and iter to allow reordering top level rows. Fixes #143834. John Ehresman's patch with mods. 2004-07-04 John Ehresman * tests directory: unit tests 2004-07-04 Gustavo J. A. M. Carneiro * gtk/gtktreeview.override (_wrap_gtk_tree_store_new): Use g_object_newv to create instance, thus allowing subclassing without __gobject_init__. * gtk/gtkmodule.c (init_gtk): Register new warning category, GtkWarning. Register a log handler for Gtk warnings that issues a python warning using GtkWarning category. 2004-07-04 John Ehresman * codegen/argtypes.py (GUniCharArg): Use the converter function pyg_pyobj_to_unichar_conv to parse gunichar parameters, instead of templated code. * pygtype.c (pyg_pyobj_to_unichar_conv): impl. * pygobject.h, gobjectmodule.c: Add pyg_pyobj_to_unichar_conv to list of exported functions. 2004-07-04 Gustavo J. A. M. Carneiro * gtk/gdk.override (_wrap_gdk_colormap_query_color): Implement gdk.Colormap.query_color. * gtk/gdk.defs (query_color): Add gdk.Colormap.query_color. * gtk/gtktreeview.override (pygtk_set_search_equal_func_marshal): Column is integer, not PyGObject! :-/ 2004-07-03 John Finlay * gtk/gtk.defs * gtk/gtk-extrafuncs.defs I goofed in placing the GenericTreeModel methods. Now they should be in the right place. * gtk/gtktreeview.override Ignore gtk_tree_view_get_search_equal_func. * gtk/pygtktreemodel.c * gtk/pygtktreemodel.h * gtk/gtk.defs Add stamp to GenericTreeModel to use in detecting valid TreeIters. Add invalidate_iters() method to allow custom tree models to manage TreeIters when not persistent. Add iter_is_valid() method to allow apps to determine if a TreeIter for a custom tree model is valid. 2004-07-03 Ross Burton * gtk/gdk.defs: Add gdk_pixbuf_new_subpixbuf. 2004-07-03 Gustavo J. A. M. Carneiro * gtk/gtktreeview.override (_wrap_gtk_list_store_new): Construct object with g_object_newv, then call gtk_list_store_set_column_types(). Fixes #123037. (_wrap_gtk_tree_view_set_search_equal_func): Impl. Most code is copy-paste from _wrap_gtk_tree_view_set_column_drag_function. Fixes #145342. (_wrap_gtk_tree_selection_get_selected_rows): Initialize model to NULL, to avoid crash when the tree is empty. 2004-06-29 Lorenzo Gil Sanchez * setup.py: changed the version to 2.3.93 so we can build it on Windows with correct version information. 2004-06-28 Gustavo J. A. M. Carneiro * gtk/gdk.override (_wrap_gdk_window_set_user_data): Fixup and do some real testing of last changes, to make this really safe using a pair of mutual weak references between the widget and its window. Fixes #145091. 2004-06-27 Gustavo J. A. M. Carneiro * codegen/definitions.py (Definition.guess_return_value_ownership): new method (name to guess default value for caller_owns_return. (MethodDef.__init__): Call guess_return_value_ownership here. (FunctionDef.__init__): And here as well. (get_valid_scheme_definitions): new function to filter out invalid elements in a definition. (ObjectDef.__init__): Use get_valid_scheme_definitions here. (InterfaceDef.__init__): and here (EnumDef.__init__): here too (BoxedDef.__init__): and here (PointerDef.__init__): here as well (MethodDef.__init__): idem (FunctionDef.__init__): idem Paches by Scott Tsai, with a bit of refactoring by me. * gtk/gdk.override (_wrap_gdk_color_parse): Raise TypeError when color cannot be parsed. Fixes #144862. * gtk/gtk.override (_wrap_gtk_adjustment__set_value): Use pygtk_util_pyobject_as_double to convert the value. (_wrap_gtk_adjustment__set_lower): idem (_wrap_gtk_adjustment__set_upper): idem (_wrap_gtk_adjustment__set_step_increment): idem (_wrap_gtk_adjustment__set_page_increment): idem (_wrap_gtk_adjustment__set_page_size): idem (pygtk_util_pyobject_as_double): New utility function to convert any numeric object to C double. * gtk/gdk.override (_wrap_gdk_window_set_user_data): Raise TypeError instead of value error when user data is not of gtk.Widget type. (_wrap_gdk_window_set_user_data): Add weak reference to the widget for increased safety, just in case the widget is ever destroyed before the window, however unlikely that may be... 2004-06-26 Lorenzo Gil Sanchez * gtk/gdk.override (_wrap_gdk_window_set_user_data): only allow GtkWidgets to be the user data (_wrap_gdk_display_list_devices): only get GtkWidgets to be simetric with _wrap_gdk_window_set_user_data * gtk/gtk.defs : modified the parameters of some GtkNotebook methods so they can accept NULL arguments * gtk/gtk.override: removed the _wrap_gtk_notebook_insert_page and _wrap_gtk_notebook_set_tab_label since they are not needed anymore with the changes to gtk/gtk.defs 2004-06-20 Scott Tsai * codegen/argtypes.py (ObjectArg.write_return): Check for NULL GObject before unreffing. Fixes Bug 137086 (gtk.gdk.window_lookup assertion). (reviewed by Gustavo Carneiro) 2004-06-20 Gustavo J. A. M. Carneiro * gtk/gtkmodule.c (init_gtk): Just like GtkWindow, register custom sink function for GtkInvisible type. * codegen/codegen.py (GObjectWrapper.get_initial_constructor_substdict): Removed special treatment of GtkInvisible, no longer needed. * gtk/gtkmodule.c (sink_gtkinvisible): Copy-paste from sink_gtkwindow. * pygobject.c (pygobject_new_with_interfaces): Add hack to workaround python tp_(get|set)attr slot inheritance bug. Fixes pygtk bug #144135 (gtk.gdk.GC attributes not working). 2004-06-18 Lorenzo Gil Sanchez * gtk/gdk.override (_wrap_gdk_window_get_user_data): finally I got it working with Gustavo's help * gtk/gdk.override (_wrap_gdk_window_get_user_data): make it compile again * gtk/gdk.defs (get_user_data): added so we can implement _wrap_gdk_window_get_user_data * gtk/gdk.override (_wrap_gdk_window_get_user_data): implemented so we can retrieve the GtkWidget of a GdkWindow. By the way, is it possible to know if a gpointer is a PyObject? * gtk/gtk.override (_wrap_gtk_notebook_insert_page): allow to insert pages without a tab_label widget (i.e None) so a default one is created by GTK+. (_wrap_gtk_notebook_set_tab_label): allow to set a None tab_label widget so a default one is created by GTK+ 2004-06-14 John Finlay * gtk/gtk.override (_wrap_gtk_clipboard_set_with_data) (_wrap_gtk_drag_dest_set) (_wrap_gtk_drag_dest_find_target) (_wrap_gtk_drag_dest_set_target_list) (_wrap_gtk_drag_source_set) (_wrap_gtk_drag_begin) (_wrap_gtk_selection_add_targets) Avoid segfault if first item in a py_targets tuple is None by forcing first item to be a string. (_wrap_gtk_drag_dest_get_target_list) target_list should not be unreffed. 2004-06-14 Lorenzo Gil Sanchez * gtk/gtkwidget.override (_wrap_gtk_widget_hide_on_delete): added dummy args so you can do win.connect ('delete-event', win.hide_on_delete) 2004-06-13 Gustavo J. A. M. Carneiro * gtk/gtkmodule.c (sink_gtkobject, init_gtk): Add custom sink function, that increments reference count of newly created GtkWindow's. Solution provided by James Henstridge, code by Jon Trowbridge. Fixes "Bug 122569: gtk.Window derived class segfaults." * codegen/codegen.py (GObjectWrapper.get_initial_constructor_substdict): Special treatment for GtkWindow no longer necessary due to the custom sink function. 2004-06-12 Johan Dahlin * gtk/gtk.override (_wrap_gtk_accel_groups_from_object): For Kiko. 2004-06-11 Johan Dahlin * gtk/gdk.override (pygdk_filter_func_marshal): Return a GdkEventType and not a PyObject. Fixes bug 143420 (Tim Evans). 2004-06-09 John Finlay * gtk/gtk.override (_wrap_gtk_action_group_add_radio_actions) Fix bug preventing callback being connected. Fixes #144022. Thanks to Steve Chaplin. 2004-06-09 Lorenzo Gil Sanchez * examples/gtk/widget.py (PyGtkWidget.do_size_request): change the allocation parameter to requisition so we have a more clear example. 2004-06-07 Gustavo J. A. M. Carneiro * examples/gtk/widget.py: Don't manually send configure events. Instead, override size-request, taking the exact size of the text and border width into consideration. 2004-06-06 Johan Dahlin * gtk/gdk.override (_wrap_gdk_event_tp_setattr): Add GDK_PROPERTY_NOTIFY attributes. 2004-06-04 Johan Dahlin * gobjectmodule.c (pyg_param_spec_getattr): Add support for paramspec.default_value for GParamSpec types that support it 2004-06-04 Lorenzo Gil Sanchez * gobjectmodule.c (initgobject): added gobject.TYPE_UNICHAR 2004-06-04 Johan Dahlin * gtk/gtkwidget.override (_wrap_gtk_widget_class_install_style_property): Impl * gtk/gtkcontainer.override (_wrap_gtk_container_class_list_child_properties): Rename first kwlist argument to klass (from widget), class should be a GObjectClass and not a GtkWidgetClass (_wrap_gtk_container_class_install_child_property): Impl. * gtk/gtk.defs: Change a couple of methods to functions and set correct class * pygobject.h: Add pyg_param_spec_from_object * gobjectmodule.c (create_property): Don't install the property here, return it instead. And don't require a GObjectClass as argument (pyg_param_spec_from_object): New function (add_properties): Update to new create_property (pygobject_api_functions): Export pyg_param_spec_from_object * gtk/gtkcontainer.override (_wrap_gtk_container_class_list_child_properties): Implement for Lorenzo. * gtk/gdk.override (_wrap_gdk_event_tp_setattr): Fix up *_CHECK calls * examples/gtk/widget.py: Add a new example of subclassing a GtkWidget. * Makefile.am (EXTRA_DIST): Add widget.py * pygobject.c (pygobject_new): guard object_ref call * examples/gtk/uimanager.py: Some more polishing, it'll never be finished! * gtk/gtkwidget.override (_wrap_gtk_widget__set_allocation): Impl. (_wrap_gtk_widget__set_window): Impl. * gtk/gtkclist.override (_wrap_gtk_clist_new_with_titles): put all clist overrides here. * gtk/gtk.override (_wrap_gtk_paint_polygon): Move gtk_widgets_* ignore definitions to gtkwidget.override and clist_* to gtkclist.override (_wrap_gtk_action_group_add_actions): guard ref call (_wrap_gtk_action_group_add_toggle_actions): ditto (_wrap_gtk_action_group_add_radio_actions): ditto * gtk/gtk-types.c (_pygtk_style_helper_new): guard ref call. * gtk/gdk.override (_wrap_gdk_event_tp_setattr): Impl. (I'll have nightmares about this code) (_wrap_gdk_window_new): Clean up a little bit: Proper use of enums and set a boolean to b instead of i. Block unref calls for thread safety issues. (_wrap_gdk_window_set_user_data): Impl. This is also a hairy implementation: If it's a GtkWidget, get the GObject, otherwise put the real pyobject in there. Maybe we should just always put the widget in there. (_wrap_gdk_window_add_filter): Thread safety. 2004-05-30 John Finlay * gtk/gtktreeview.override (_wrap_gtk_tree_store_reorder) Fix bug I inserted in check for GtkTreeIter. 2004-05-29 John Finlay * gtk/gtktreeview.override (_wrap_gtk_tree_view_set_column_drag_function) Add. Fixes #127504. 2004-05-28 John Finlay * gtk/gtkcontainer.override (_wrap_gtk_container_child_set) (_wrap_gtk_container_child_get) (_wrap_gtk_container_add_with_properties) Check that at least one arg is passed to method to avoid segfault. * gtk/gtk.override (_wrap_gtk_entry_new) * gtk/gtk.defs (gtk_entry_new) (gtk_entry_new_with_max_length) Apply patch from Scott Tsai. Fixes #139190. 2004-05-28 Johan Dahlin * examples/gtk/uimanager.py: Add a toolbar and fix shortcuts. 2004-05-27 John Finlay * gtk/gtktreeview.override Ignore: gtk_tree_view_column_pack_start gtk_tree_view_column_pack_end gtk_tree_view_column_clear gtk_tree_view_column_set_attributes - these are now covered by the GtkCellLayout interface. Couldn't do the same for gtk_tree_view_column_add_attribute and gtk_tree_view_column_clear_attributes due to backward compatibility. 2004-05-25 John Finlay * examples/gtk/filechooser.py Fix bug #140946. 2004-05-24 John Finlay * gtk/gtktreeview.override (_wrap_gtk_tree_view_column_set_cell_data_func) Change this override to override gtk_cell_layout_set_cell_data_func - covers all objects that implement GtkCellLayout in GTK+ 2.4 including GtkTreeViewColumn.. Ignore gtk_tree_view_column_set_cell_data_func. 2004-05-24 Johan Dahlin * gtk/gdk.override (_wrap_gdk_keymap_translate_keyboard_state): Remove double ;, fixes compilation with gcc 2.95.3 on FreeBSD. 2004-05-22 Johan Dahlin * NEWS: Don't lie about the release date. * configure.in: post release version bump === PyGtk 2.3.92 === 2004-05-22 Johan Dahlin * NEWS: Update