On 7/19/16 11:08 AM, [email protected] wrote:
But where do I define this dictionary?

Any .webidl file you feel like. But putting it in Document.webidl makes sense if that's where you use it.

/source/release/dom/base/nsDocument.h:1042:41: error: unknown type name 
'myFunctionElementInfo'; did you mean 'mozilla::dom::myFunctionElementInfo'?

Yes. See https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings#Dictionary_types the part about "whose name is the dictionary name in the mozilla::dom namespace".

 8:43.20 In file included from /build/dom/base/Unified_cpp_dom_base5.cpp:92:
 8:43.20 /source/release/dom/base/nsDocument.cpp:3580:12: error: no member 
named 'node' in 'mozilla::dom::myFunctionElementInfo'
 8:43.20         e->node = node;
 8:43.20         ~  ^
 8:43.20 /source/release/dom/base/nsDocument.cpp:3581:12: error: no member 
named 'number1' in 'mozilla::dom::myFunctionElementInfo'
 8:43.20         e->number1 = number1;
 8:43.20         ~  ^

Please see https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings#Dictionary_types where it says:

The struct has one member for each of the dictionary's members with the same name except the first letter uppercased and prefixed with "m"

Seriously, the documentation should cover most of this stuff.  ;)

Also note that the struct's member will be an Optional unless the member is either required or has a default value, so your code above would not work even with the correct member name. In your case, I expect making all the members required is fine; I assume you plan to initialize all of them for every dictionary.

-Boris
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to