Files
php-gtk-src/TODO2
T
Christian Weiske 52b33d5279 Updating TODO2
2006-06-13 19:42:16 +00:00

159 lines
7.7 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.
Classes and Functions
~~~~~~~~~~~~~~~~~~~~~
* GdkWindow
lookup() is implemented but comes out as php_lookup() - same as in GtkTextTagTable
* GtkAboutDialog
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*'
* GtkCellView
get_size_of_row NTRVNRP
* 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
Default constructor should get optional parameter, and new_with_model() be removed
method GtkComboBox::get_row_separator_func: unknown type 'GtkTreeViewRowSeparatorFunc'
* GtkEntry
GtkEntry objects can't be var_dumped, probably something missing
* 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*'
* GtkMenuToolButton
new_from_stock isn't generated and not in in the not-generated list
* 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**'
* GtkTextBuffer
get_iter_at_child_anchor NTRVNRP
* 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?
* 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_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_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
add_alpha() needs to accept intergers as parameters instead of chars, and
make the three last parameters optional. If they are set, the first is automatically
set to true, so that the first parameter can be removed from the php method.
* 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.
* 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