summaryrefslogtreecommitdiff
path: root/TODO
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.