This repository has been archived by the owner on Dec 8, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 55
/
TODO2
87 lines (74 loc) · 3.15 KB
/
TODO2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
* 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.
* Migrate callbacks to use zend_fcall_info and zend_fcall_info_cache (this will also buy us goodies like specifying statis callbacks as 'gtk::main_quit')
* Remove copy()/free() from boxed classes ?
Classes and Functions
~~~~~~~~~~~~~~~~~~~~~
See all missing functions in the implementation coverage
analysis at http://php-gtk2.de/manual/classcoverage.htm
* GdkGC
implement property access (read/write)
* GtkIconInfo
get_embedded_rect NTRVNRP
* 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)?
* GtkTreeModel
method GtkTreeModel::rows_reordered: unknown type 'gint*'
maybe implement some SPL interfaces?
* GtkTreeModelFilter
memleak when using get_property('virtual-root')
second constructor parameter doesn't work (see unit test)
* GtkTextBuffer
GtkTextBuffer::move_mark_by_name('selection_bound', ...) moves both the
insert and select_bound marks
(method is generated, need to test this)
* Support (array) cast for GtkTreeModelRow and possibly unset()
Extensions
~~~~~~~~~~
- Migrate Scintilla bindings to direclty use scintilla,
not GtkScintilla (which is unmaintained)
See Tom's patches
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
Misc
~~~~