blob: f60bf310dc0020711a6cfb4731842ff1aef3f8ae (
plain)
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
|
Things to do for the gtk 2.0 based release
- fix up threading to work with GObject/GSignal/GClosure. See the
THREADS file for more info on what is required.
- Add GInterface support to the code generator and the rest of pygtk.
Additions to the .defs format:
* a definition for interfaces, something like:
(interface TextModel
(in-module Gtk)
(parent Interface (G)) ;; is this needed? Can you derive interfaces?
(c-name GtkTextModel)
)
* add a flag for the (object ...) sections like:
(implements GtkTextModel)
For the code generator:
* Create new ExtensionClasses for the interface (an empty `mixin' class).
* Use multiple inheritance to add these methods for classes that implement
the interface.
[ mostly done. Not handled by h2defs, and I don't know if it will
be possible to handle it from there - JH]
- Implement a new PyGtkTreeModel GObject type that can be the base for
new tree models defined in Python. Need to look at how the
GtkTreeIter->tree_node lifetime is handled, as it doesn't look like
anything is called to let us know that that data should be unrefed.
- Maybe switch all the boxed types to ExtensionClasses?
* Maybe not such a great idea, as it doesn't make sense to subclass
most of them.
- Add the rest of the new boxed types.
- Make python subclasses of GObjects into new types in the GType
system. Should be possible to do from GObject.__class_init__ and a
bit of extra magic.
Maybe stop adding get_type() class methods, and switch over to
adding __gtype__ class attributes. This is easier when defining new
GObject types (ie. just set an attribute), but may mean calling
get_type() for all classes. Could do some special code so that the
__gtype__ attributes are of a special type that calls the get_type()
macro to convert to an int.
|