Generator ~~~~~~~~~ + Support boxed types + Expose GTK properties + Implement '#line' pragma directives for debugging + Support for some custom arg types like GdkRectangle* + Allow for templatization of PHP_METHOD() declarations in overrides + Interfaces * Pointers * Write handlers for properties * Make property-based constructors use pre-code generated by arg types * gunichar arg type Base Functionality ~~~~~~~~~~~~~~~~~~ + Support signal connection and closures + Custom boxed types + Make error messages display Class::Method() instead of just method name * Some classes need to be coded in C entirely, see gtk-types.c * Interfaces * Pointers * Atoms * Implement __gtype, __doc, and other special properties, if possible * Deal with clone() handler in Zend * Maybe use zend_call_function() instead of call_user_function_ex() to take advantage of function call cache * Construction of arbitrary GObjects() via argument lists * Integration with pkg-config + Support automatic UTF-8 <-> codepage conversion where necessary * Provide access to GTK version number. * Fix crash when doing var_dump() on GtkStyle due to GtkStyleHelper not implementing get_properties and get_class_entry Classes and Functions ~~~~~~~~~~~~~~~~~~~~~ * GtkListStore append() should accept a list of ordered column values * GtkTreeModel * GtkTreeStore * GtkTreeView * GtkCellRenderer * Implement write prop handler for GdkColor, test cascaded overloads, i.e. $style->base[GTK_STATE_NORMAL]->red = 55555. * CheckMenuItem should accept a label as first parameter and a boolean as second (use or not underline) * GtkImageMenuItem should accept a stock-id as first parameter and the accell group as the second one * GtkRadioMenuItem GtkRadioMenuItem cannot be instantiated directly * GtkCombo Call to undefined method GtkCombo::set_popdown_strings() * GtkMenu Call to undefined method GtkMenu::popup() * GtkTextBuffer * GtkClipboard * GtkWindow constructor should accept title text as parameter Fix ~~~ * StyleHelper does not implement handlers that ZE2 _requires_ right now. Need to change either ZE2 or StyleHelper. 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. [ * todo - in progress + done ]