mirror of
https://github.com/php/php-gtk-src.git
synced 2026-03-24 09:12:12 +01:00
144 lines
7.1 KiB
Plaintext
144 lines
7.1 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
|
|
~~~~~~~~~~~~~~~~~~
|
|
* Some classes need to be coded in C entirely, see gtk-types.c
|
|
* 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
|
|
|
|
Classes and Functions
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
* GtkAboutDialog
|
|
method GtkAboutDialog::get_artists: unknown type 'gchar**'
|
|
method GtkAboutDialog::get_authors: unknown type 'gchar**'
|
|
method GtkAboutDialog::get_documenters: unknown type 'gchar**'
|
|
method GtkAboutDialog::set_artists: unknown type 'gchar**'
|
|
method GtkAboutDialog::set_authors: unknown type 'gchar**'
|
|
method GtkAboutDialog::set_documenters: unknown type 'gchar**'
|
|
method GtkAboutDialog::set_email_hook: unknown type 'GtkAboutDialogActivateLinkFunc'
|
|
method GtkAboutDialog::set_url_hook: unknown type 'GtkAboutDialogActivateLinkFunc'
|
|
GtkAboutDialog->set_logo_icon_name seems to find no icons at all
|
|
(method is generated, need to test this)
|
|
* GtkCalendar
|
|
method GtkCalendar::get_date: unknown type 'guint*'
|
|
* GtkClipboard
|
|
constructor GtkClipboard::__construct: unknown type 'GdkAtom'
|
|
method GtkClipboard::request_contents: unknown type 'GdkAtom'
|
|
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_contents: unknown type 'GdkAtom'
|
|
method GtkClipboard::wait_for_targets: unknown type 'GdkAtom**'
|
|
method GtkClipboard::wait_is_target_available: unknown type 'GdkAtom'
|
|
* GtkComboBox
|
|
get_active_iter shouldn't need a parameter but return one
|
|
* GtkEntry
|
|
GtkEntry objects can't be var_dumped, probably something missing
|
|
* GdkGC
|
|
implement property access (read/write)
|
|
* GtkIconTheme
|
|
method GtkIconTheme::get_icon_sizes: unknown type 'gint*'
|
|
method GtkIconTheme::get_search_path: unknown type 'gchar**[]'
|
|
method GtkIconTheme::list_icons: unknown type 'GList*'
|
|
method GtkIconTheme::set_search_path: unknown type 'const-gchar*[]'
|
|
* GtkIconView
|
|
method GtkIconView::get_selected_items: unknown type 'GList*'
|
|
method GtkIconView::selected_foreach: unknown type 'GtkIconViewForeachFunc'
|
|
* 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*'
|
|
* GtkNotebook
|
|
methods append_page, insert_page and prepend_page have to be merged
|
|
with their _menu counterparts (so that append_page accepts a third
|
|
parameter from append_page_menu)
|
|
* GtkTreeModel
|
|
method GtkTreeModel::get: varargs methods not supported
|
|
method GtkTreeModel::get_valist: unknown type 'va_list'
|
|
method GtkTreeModel::rows_reordered: unknown type 'gint*'
|
|
maybe implement some SPL interfaces?
|
|
* 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_columns: unknown type 'GList*'
|
|
method GtkTreeView::get_cursor: unknown type 'GtkTreePath**'
|
|
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_column_drag_function: unknown type 'GtkTreeViewColumnDropFunc'
|
|
method GtkTreeView::set_destroy_count_func: unknown type 'GtkTreeDestroyCountFunc'
|
|
method GtkTreeView::set_row_separator_func: unknown type 'GtkTreeViewRowSeparatorFunc'
|
|
method GtkTreeView::set_search_equal_func: unknown type 'GtkTreeViewSearchEqualFunc'
|
|
method GtkTreeView::tree_to_widget_coords: unknown type 'gint*'
|
|
method GtkTreeView::widget_to_tree_coords: unknown type 'gint*'
|
|
* 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 the
|
|
insert and select_bound marks
|
|
(method is generated, need to test this)
|
|
* GtkTextTagTable
|
|
method GtkTextTagTable::foreach: unknown type 'GtkTextTagTableForeach'
|
|
GtkTextTagTable->lookup() is not implemented
|
|
(method is generated, needs overriding - it's coming out as php_lookup()!)
|
|
* GdkPixbuf
|
|
pixbuf_new_from_array() has PyArrayObject as a parameter
|
|
* GdkPixmap
|
|
constructor create_from_xpm_d()
|
|
* 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.
|
|
|
|
|
|
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
|
|
]
|