Files
php-gtk-src/TODO2
Andrei Zmievski 91d905e18b Update.
2005-03-13 23:46:02 +00:00

54 lines
1.8 KiB
Plaintext

Generator
~~~~~~~~~
+ Support boxed types
+ Expose GTK properties
* Implement '#line' pragma directives for debugging
+ Support for some custom arg types like GdkRectangle*
* Interfaces
* Pointers
* Allow for templatization of PHP_METHOD() declarations in overrides
Base Functionality
~~~~~~~~~~~~~~~~~~
+ Support signal connection and closures
* Make error messages display Class::Method() instead of just method name
+ Custom boxed types
* Some classes need to be coded in C entirely, see gtk-types.c
* Interfaces
* Pointers
* Implement __gtype, __doc, and other special properties, if possible
* Look at how Python engine implements getsets
* Deal with clone() handler in Zend
General
~~~~~~~
* Find out why PY_TYPE_OBJECT is boxed
Thoughts on reference counting and wrappers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. We should probably not ref the GtkWindow/GtkInvisible after construction.
It leaves a hanging reference around and the window will not get destroyed by
Gtk+. The proper way to destroy the toplevel window is via
gtk_window/widget_destroy(). Calling gtk::main_quit() is not enough.
2. Since we lack a garbage collector, we need to fake it. We need to override
del_ref handler on the object, which will make sure that our wrapper is
destroyed only if the referent gobject also has refcount of 1, which we means
that only we own it. Otherwise, we need to keep our wrapper from being
destroyed and save a pointer to the wrapper in the gobject with notification
turned on, so that when gobject is destroyed by Gtk+ our wrapper is destroyed
as well.
3. Just to make sure that our closure data is destroyed properly, we should
put closure object in the object store where it will get cleaned up on exit.
[
* todo
- in progress
+ done
]