Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 3.41 KB

README.md

File metadata and controls

68 lines (51 loc) · 3.41 KB

Source code has moved to github.com:

Gtkaml is a markup language based on Vala which lets you create Gtk+ composite widgets through concise XML:

http://gtkaml.googlecode.com/svn/wiki/hello.png

<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!";
}

Features

  • 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 Follow gtkaml on Twitter.

Using Gtkaml?

Then let us know!

(2013-01-03) gtkaml 0.6 beta 3

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.

(2011-03-22) gtkaml 0.4.3

  • #! shebang support for GtkON files to be used with the gtkaml executable
  • vim syntax files for gtkon and gtkaml files. (thanks [email protected]). See editors/vim/README on how to use them.
  • removed own debian/* files in favour of debian's own packaging scripts (thanks David [email protected])
  • optional running of tests with --enable-tests at configure stage

See the release notes.