-
Notifications
You must be signed in to change notification settings - Fork 2
/
TODO
92 lines (87 loc) · 3.97 KB
/
TODO
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
87
88
89
90
91
92
Refactor
========
+ Dont set the font size per document, but an Enesim_Font
+ Don't allow a process on an element without document, this will
simplify so many if (!doc) code
+ Add way to get stats from an element process function
+ Rename egueb_dom_attr_set to egueb_dom_attr_value_set
+ Rename egueb_dom_attr_value_set to egueb_dom_attr_dom_value_set
+ Change the dasharray attribute to support NONE as part of the type
+ Add versioning system on every descriptor structure
+ The image element that references a svg is not the same as a use element
that references a svg. The image must create a self contained document
thus we must propagate every feature like what eon does
+ Implement every type with reffed values, i.e
typedef struct _Egueb_Svg_Paint
{
Egueb_Svg_Paint_Type type;
Egueb_Svg_Color color;
char *uri;
} Egueb_Svg_Paint;
to
typedef struct _Egueb_Svg_Paint
{
Egueb_Svg_Paint_Type type;
Egueb_Svg_Color color;
Egueb_Dom_String *uri;
} Egueb_Svg_Paint;
+ Given that attributes might pass by reference (i.e transfer=none)
a modification on such value must not be allowed. Otherwise things like
MyAttrValue v;
egueb_dom_attr_final_get(attr, &v);
v.foo = bar
will not trigger a mutation event ...
+ Use the discrete signals for time based events
+ Make the smil timeline/signal be part of the "engine" ns
+ Change the API on the attr_value_set to match the DOM spec
+ When parsing a doc, how to create the nodes using the xmlns
attribute so we can actually call createElementNS?
+ Remove the attribut_fetch and add the attribute_node_set
+ Add more DOM level 3 functions, element_attribute_set_ns, etc
+ Remove the value function prefix on the macro for attributes. Pass directly the value
+ In case we have a tree like:
A
+--- A1
+--- A2
+--- A3
+--- A31
In case A31 changes but A3 or A is already queued for processing
do not enqueue A31.
How to handle it? or we either add a token like "A31" for each node
so whenever the request process reaches the document check the list
of already queued elements and see if the token of such elements are
a subset of the to-be-added node, i.e strstr("A", "A31").
Another option is to add an event handler on every element so whenever
a mutatition event passes through element A3 for example, check if A3
is already queued, if so, do not enqueue A31.
+ Add more functions to attributes implementations, like
egueb_svg_attr_length_final_get() which will get the parent
document, the font size, etc, etc and calculate the final value
+ Split every attribute into:
value_foo, attr_foo, foo
+ Cleanup the feature ui. Just get the input object given
that we need to replicate lot of API
+ Add the navigation feature, this way document implementations
can use common definitions for going to a specific URI, going
back, next, etc.
+ Add the document fragment node type. This is helpful for out of
tree nodes but with the same logic as a document (i.e events)
+ Move the value, the list, even the string implementation to the base
lib
+ The clip path is by default not inherited unless the inherited
is set, several presentation attributes work like that, we need
to fix the initializers of the attr
+ Add a egueb_dom_document_wait_process() which will wait until an enqueued
process events arrives, in such case, wake up the thread.
+ Modify the clone interface, in order to clone a node we need a doc, just
create it as it has been parsed
SVG
====
+ There's some complication about attributes and properties and how to export them:
attributes: object's attributes
properties: attributes that can be specified with a style and also as object's attributes
http://dev.w3.org/SVG/proposals/css-animation/animation-proposal.html
http://blogs.adobe.com/webplatform/2012/03/30/svg-animations-css-animations-css-transitions/
+ On a future we might want to save a svg too, for that case it might be interesting to do
some research on way to simplify the properties, like simplifying matrices to just
modifying the inner properties