Source code has moved to github.com:
- For gtkaml-0.6 beta check out https://github.com/radare/gtkaml3
- For gtkaml-0.4 legacy check out https://github.com/radare/gtkaml
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>
or by using Gtkon object notation:
HBox !homogeneous {
Label with-mnemonic label="_Hello" !expand !fill;
Entry $my_entry text="World!";
}
- compact XML syntax for describing Gtk widgets
- JSON-like and less verbose Gtkon syntax
- code 'islands' (written in Vala) for signal handling and other methods/signals/properties/ 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 variable names, 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)
To see a sample of what gtkaml
looks like, see the examples here.
Have a look at the design goals for a quick specification + advancements in development. A reference of the gtkaml keywords is made available too. Examples can be found in /tests and /examples in the source distribution.
You can discuss about gtkaml
on the gtkaml-dev mailing list or you can .
Then let us know!
This third beta release contains the following fixes compared to beta2:
- prevent a crasher when class name is blank
- stop stripping CDATA tags' leading and trailing whitespaces
- honor -D defines in the context used to parse members
- honoring -d for .gtkaml generated files
- fix a bug copying fields twice if generated automatically by properties
Support was added for enum literals, like <Window type='toplevel' />
There should be no notable differences compared to 0.4.3's functionality other than:
- compatibility with Vala 0.18
- source files' order from command line is not relevant anymore (previous architectural limitation)
- support for custom creation methods (the
construct
will still be generated by gtkaml) - support for enum literals
- '.implicits' files renamed to '.markuphints'
Source is available in the svn branch gtkaml-0.6 for now.
- #! shebang support for GtkON files to be used with the
gtkaml
executable - vim syntax files for gtkon and gtkaml files. (thanks pancake@nopcode.org). See editors/vim/README on how to use them.
- removed own debian/
*
files in favour of debian's own packaging scripts (thanks David dapal@debian.org) - optional running of tests with --enable-tests at configure stage
See the release notes.