Changes in 0.4.2:
- updated to valacompiler 0.11.6, compatible with vala 0.10.4
- internal classes: by using gtkaml:internal="foo" on the root node.
The existing gtkaml:name becomes an alias for gtkaml:public.
- internal and protected modifiers for fields, along with public/private
- properties: a field with e.g. gtkaml:property="get; internal set;"
becomes a property
This feature is available as property='get;internal set' in Gtkon
- gtkon:version is now optional
- use $foo on root node in Gtkon for the class name, instead of name="foo"
Issues fixed:
- #18 Signals in interfaces are not detected
- #23 Cannot refer to variables created in code
- #24 Invalid UTF-8 handling
================
What is it?
Gtkaml is a markup language based on Vala which lets you create Gtk+
composite widgets through concise XML:
<HBox homogeneous="false">
<Label label="_Hello" with-mnemonic="true" expand="false" fill="false"/>
<Entry g:public="my_entry" text="World! "/>
</HBox>
Gtkon is an object notation alternative to the XML syntax, contributed
by pancake at nopcode.org:
HBox !homogeneous {
Label with-mnemonic label="_Hello" !expand !fill;
Entry $my_entry text="World!";
}
More information on the Gtkon syntax is available here [2] and in the
tests and examples gtkaml comes with.
Features:
* compact XML syntax for describing composite Gtk widgets
* Gtkon syntax for JSON-like sources
* code 'islands' (written in Vala) - for signal handling and other
code in your widget class (so you don't modify the generated code
ever)
* you don't depend on gtkaml at run-time
* much more readable than the usual UI boilerplate (e.g. you don't
need to worry about temporary variables, or ever write hundreds of
lines of code)
* works with any library that has a .vapi file, not just Gtk+
(composition methods can be specified in the *.implicits file)
Full release notes: http://code.google.com/p/gtkaml/wiki/ReleaseNotes
Downloads: http://code.google.com/p/gtkaml/downloads/list
[1] Examples: http://code.google.com/p/gtkaml/wiki/Example
[2] Gtkon http://code.google.com/p/gtkaml/wiki/Gtkon
Regards,
Vlad Grecescu
Nice:)
Regarding the requirements:
For building gtkaml you need glib 2.16 just like Vala needs and
(afaict) any version of libxml-2.0
For _using_ it to build Gtk+ applications, there is no mandatory Gtk+
API level, it depends on what you're using from the gtk+-2.0.vapi and
gtk+-3.0.vapi that are shipped with Vala.
However, since the vanilla package also builds the gtkaml tests, it's
safe to put a gtk+-2.0 dependency there too.
So:
glib-2.0 >= 2.16
libxml-2.0
gtk+-2.0
HTH,
Vlad