mirror of
https://github.com/php/php-gtk-src.git
synced 2026-03-24 17:22:10 +01:00
122 lines
5.8 KiB
Plaintext
122 lines
5.8 KiB
Plaintext
Generator
|
|
~~~~~~~~~
|
|
* Pointers
|
|
* Write handlers for properties
|
|
* Make property-based constructors use pre-code generated by arg types
|
|
* gunichar arg type
|
|
* Fix Boxed_Arg to require explicit CE in php_gtk_parse_args().
|
|
|
|
Base Functionality
|
|
~~~~~~~~~~~~~~~~~~
|
|
* Interfaces
|
|
* 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
|
|
* Fix GdkEventType property handlers to cope with GdkAtom, GdkRegion, GdkNativeWindow and GdkDragContext
|
|
* Go through TBD ignores
|
|
* See whether we want to speed up callbacks by doing zend_is_callable() up
|
|
front. This means that the callback has to be defined and accessible when you
|
|
register it.
|
|
* Add a generic function to allow i18n support for strings in arrays.
|
|
|
|
Classes and Functions
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
* GtkClipboard
|
|
method GtkClipboard::request_contents: unknown type 'GtkClipboardReceivedFunc'
|
|
method GtkClipboard::request_targets: unknown type 'GtkClipboardTargetsReceivedFunc'
|
|
method GtkClipboard::request_text: unknown type 'GtkClipboardTextReceivedFunc'
|
|
method GtkClipboard::set_can_store: unknown type 'const-GtkTargetEntry*'
|
|
method GtkClipboard::set_with_data: unknown type 'const-GtkTargetEntry*'
|
|
method GtkClipboard::set_with_owner: unknown type 'const-GtkTargetEntry*'
|
|
method GtkClipboard::wait_for_targets: unknown type 'GdkAtom**'
|
|
* GtkComboBox
|
|
method GtkComboBox::get_row_separator_func: unknown type 'GtkTreeViewRowSeparatorFunc'
|
|
* GdkGC
|
|
implement property access (read/write)
|
|
* GtkIconInfo
|
|
get_embedded_rect NTRVNRP
|
|
* GtkIconTheme
|
|
method GtkIconTheme::get_icon_sizes: unknown type 'gint*'
|
|
method GtkIconTheme::get_search_path: unknown type 'gchar**[]'
|
|
method GtkIconTheme::set_search_path: unknown type 'const-gchar*[]'
|
|
* GtkLabel
|
|
Would it be good to call GtkLabel::set_ellipsize(PANGO::ELLIPSIZE_END) as part
|
|
of an override for (left-justifying) GtkLabel::set_width_chars() (optional param)?
|
|
* GtkListStore
|
|
method GtkListStore::insert_with_values: varargs methods not supported
|
|
method GtkListStore::insert_with_valuesv: unknown type 'gint*'
|
|
method GtkListStore::reorder: unknown type 'gint*'
|
|
method GtkListStore::set_column_types: unknown type 'GType*'
|
|
method GtkListStore::set_value: unknown type 'GValue*'
|
|
* GtkRadioToolButton
|
|
3 new_* methods are missing
|
|
* GtkSelectionData
|
|
method GtkSelectionData::get_targets: unknown type 'GdkAtom**'
|
|
method GtkSelectionData::get_uris: unknown type 'gchar**'
|
|
method GtkSelectionData::set_uris: unknown type 'gchar**'
|
|
method GtkSelectionData::tree_get_row_drag_data: unknown type 'GtkTreeModel**'
|
|
* GtkTreeModel
|
|
method GtkTreeModel::rows_reordered: unknown type 'gint*'
|
|
maybe implement some SPL interfaces?
|
|
* GtkTreeModelFilter
|
|
NTRVNRP: convert_child_iter_to_iter(GtkTreeIter sort_iter, GtkTreeIter child_iter)
|
|
NTRVNRP: convert_iter_to_child_iter(GtkTreeIter child_iter, GtkTreeIter sorted_iter);
|
|
* GtkTreeModelSort
|
|
NTRVNRP: convert_child_iter_to_iter(GtkTreeIter sort_iter, GtkTreeIter child_iter)
|
|
NTRVNRP: convert_iter_to_child_iter(GtkTreeIter child_iter, GtkTreeIter sorted_iter);
|
|
* GtkTreeStore
|
|
method GtkTreeStore::reorder: unknown type 'gint*'
|
|
method GtkTreeStore::set_column_types: unknown type 'GType*'
|
|
method GtkTreeStore::set_value: unknown type 'GValue*'
|
|
* GtkTreeView
|
|
method GtkTreeView::enable_model_drag_dest: unknown type 'const-GtkTargetEntry*'
|
|
method GtkTreeView::enable_model_drag_source: unknown type 'const-GtkTargetEntry*'
|
|
method GtkTreeView::get_dest_row_at_pos: unknown type 'GtkTreePath**'
|
|
method GtkTreeView::get_drag_dest_row: unknown type 'GtkTreePath**'
|
|
method GtkTreeView::get_row_separator_func: unknown type 'GtkTreeViewRowSeparatorFunc'
|
|
method GtkTreeView::get_search_equal_func: unknown type 'GtkTreeViewSearchEqualFunc'
|
|
method GtkTreeView::insert_column_with_attributes: varargs methods not supported
|
|
method GtkTreeView::map_expanded_rows: unknown type 'GtkTreeViewMappingFunc'
|
|
method GtkTreeView::set_destroy_count_func: unknown type 'GtkTreeDestroyCountFunc'
|
|
* GtkTextBuffer
|
|
method GtkTextBuffer::create_tag: varargs methods not supported
|
|
method GtkTextBuffer::insert_with_tags: varargs methods not supported
|
|
method GtkTextBuffer::insert_with_tags_by_name: varargs methods not supported
|
|
GtkTextBuffer::move_mark_by_name('selection_bound', ...) moves both the
|
|
insert and select_bound marks
|
|
(method is generated, need to test this)
|
|
* GtkPlug/GtkSocket
|
|
* Support (array) cast for GtkTreeModelRow and possibly unset()
|
|
|
|
Fix
|
|
~~~
|
|
* StyleHelper does not implement handlers that ZE2 _requires_ right now. Need
|
|
to change either ZE2 or StyleHelper.
|
|
* Use phpg_gboxed_check() after receiving boxed parameters.
|
|
|
|
|
|
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
|
|
]
|
|
NTRVNRP - needs to return value not require parameter
|