mirror of
https://github.com/php/php-gtk-src.git
synced 2026-03-25 01:32:15 +01:00
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
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
|
|
|
|
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
|
|
* Find out why PY_TYPE_OBJECT is boxed
|
|
* 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
|
|
|
|
Classes and Functions
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
* GtkListStore
|
|
* GtkTreeModel
|
|
* GtkTreeStore
|
|
* GtkTreeView
|
|
* GtkCellRenderer
|
|
|
|
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
|
|
]
|
|
|