Skip to content

Latest commit

 

History

History
257 lines (186 loc) · 13.3 KB

ReleaseNotes.md

File metadata and controls

257 lines (186 loc) · 13.3 KB

(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' />

(2012-12-31) gtkaml 0.6 beta 2

This second beta release includes a new way of interaction with the Vala compiler that enables future developments.

There should be no notable differences compared to 0.6beta2's functionality other than:

  • compatibility with Vala 0.18

(2011-12-31) gtkaml 0.6 beta 1

This beta release includes a new way of interaction with the Vala compiler that enables future developments.

There should be no notable differences compared to 0.4.3's functionality other than:

  • compatibility with Vala 0.12/0.14/0.15
  • 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)

(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

(2011-03-14) gtkaml 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

(2010-11-09) gtkaml 0.4.1

  • updated to valacompiler 0.11.2, compatible with vala 0.10.2
  • initial support for clutter (adding to stage) [1]
  • support for vala structs (such as Clutter.Color)

(2010-11-06) gtkaml 0.4.0

  • first version with gtkon syntax
  • breaking: signal values are by default references to methods, and generate lambda body only when enclosed in braces (behaviour is reversed wrt gtkaml 0.2.x)
  • Fixed Issue #22 "can't find class with nested namespace" - fix by herodjar
  • gtkaml builds with vala-0.10.1 and vala-0.12 from HEAD so it does not distribute .c/.h files anymore
  • added support for run_source with the `gtkaml' command (the source cannot start with #! yet)
  • added the --write-vala (-V) switch which stops gtkamlc right after generating vala files.

(2010-10-15) gtkaml 0.2.11 and 0.2.12

Changes in 0.2.11:

  • fixed building with libvala-0.10
  • fixed a crash in reporting parsing errors
  • fixed build warnings
  • added test case3 / example for instantiating a non-visual class

Changes in 0.2.12

  • fixed building with libvala-0.12

(2010-05-15) gtkaml 0.2.10

Fixes compiling under valacompiler 0.8.1

(2009-11-13) gtkaml 0.2.9.1

Based on valacompiler 0.7.8

Fixes:

  • #20 "gtkaml crashes when vala reports an error in generated code"

(2009-09-23) gtkaml 0.2.8

Based on valacompiler 0.7.6.

Some Vala GTK examples are showed in examples/vala

Fixes:

  • #7 "Container.add instead of add_with_parameters"
  • #19 "existing vbox missing spacing"

(2009-08-06) gtkaml 0.2.7.1

Fixed bug preventing usage with valacompiler 0.7.5

(2009-06-02) gtkaml 0.2.7

Upgraded to valacompiler 0.7.3

(2009-05-04) gtkaml 0.2.6

Upgraded to valacompiler 0.7.1

(2009-04-06) gtkaml 0.2.5

Upgraded to valacompiler 0.7.0 (A 0.2.5-1 archive was uploaded to fix some more Vala 0.7 changes.)

(2009-03-10) gtkaml 0.2.4

Upgraded to valacompiler 0.5.7

(2009-01-22) gtkaml 0.2.3

Upgraded to valacompiler 0.5.6

Dropped 4-digits base-3 versioning :(

(2008-12-03) gtkaml 0.2.2.2

Upgraded to valacompiler 0.5.2

(2008-11-23) gtkaml 0.2.2.1

Upgraded to valacompiler 0.5.1, changes:

  • fixed issue #15 ("Should take interfaces into account when searching an add method described in an .implicits file")

(2008-08-17) gtkaml 0.2.2.0

Upgraded to valacompiler 0.3.5, changes:

  • fixed an issue that lead gtkaml considering a misspelled tag with no content/subtags to be an attached attribute and ignore it

(2008-07-??) gtkaml 0.2.1.2

This version was skipped.

(2008-06-09) gtkaml 0.2.1.1

Upgraded to valacompiler 0.3.3, changes:

  • fixed issue #14, "{expression} values should work for unknown literal types"

(2008-05-13) gtkaml 0.2.1.0

Upgraded to valacompiler 0.3.2, changes:

  • the README and other docs are not installed anymore

(2008-04-22) gtkaml 0.2.0.2

Upgraded to valacompiler 0.3.x, this version comes mostly with bug fixes:

  • you can now rely on default argument values even when you explicitly state a creation method or container add function (issue #6)
  • when using preconstruct/construct on non root widget, the target parameter is now set to the right (current) widget (issue #9)
  • the .implicits files can now list methods from base classes before methods from the current class (issue #5)
  • ActionGroup was added as a continer (to Gtk.implicits), with the following add methods: add_action, add_action_with_accel (issue #12)

(2008-03-24) gtkaml 0.2.0.1

Minor fixes:

  • you can now modify properties of existing widgets, but only if they're standalone too (issue #8)
  • if the parsing of the generated vala file succeeds, the generated file is removed (unless --save-temps is specified from command-line)
  • line numbers of the first CDATA code block match (if possible) with the generated vala file (so you can lookup errors)
  • removed an unintended debugging output left in 0.2.0.0

(2008-03-03) gtkaml 0.2.0.0

Based on vala 0.1.7, gtkaml 0.2 brings lots of new features.

gtkaml 0.2.0.0 requires glib-2.0, vala-1.0 >= 0.1.7, libxml-2.0, and gtk+-2.0

New features in gtkaml 0.2:

  • Write code your way

gtkaml 0.2 allows you to use either underscores in attribute names (like the Gtk+ functions do) or hyphens (as signal names do) interchangeably

  • Write less

The new Gtk.implicits file allows default values for common arguments (for creation methods and add functions). For example, HBox/VBox creation method by default has homogeneous=false and spacing=0, while pack_start borrows the 3 defaults from pack_start_defaults so that you can specify only the changed ones

  • More control

gtkaml creates the construct { } method for your class, where it adds the generated code. If however you want to write yourself code at construction time, you can use gtkaml:preconstruct and gtkaml:construct code attributes on any widget.

They work just like signals, and have a first target parameter with the current widget. Preconstruct is called exactly after creation, before setting other attributes. Construct is called exactly before adding the current widget to the parent container.

Also, gtkaml:implements on the root tag allows you to specify the interfaces you are implementing.

  • Reusing existing widgets

By specifying gtkaml:existing="identifier" you skip the creation method for the current tag, and use an existing widget. An use case would be adding a CellRenderer to a TreeViewColumn and then specifying the attribute it renders:

<TreeViewColumn resizable="true" clickable="false" append_column="true" title="size">
	<CellRendererText class:private="renderer1" expand="true" />
	<CellRendererText class:existing="renderer1" attribute="text" column="1" />
</TreeViewColumn>

The first child tag yields renderer1 = new Gtk.CellRendererText () and pack_start (renderer1, true) and the second only add_attribute ((renderer1 as Gtk.CellRendererText), "text", 1).

  • Creating standalone widgets

Specifying gtkaml:standalone="true" skips the parent container add call for that widget. This way you may create private fields that have their UI described in gtkaml but that you show later, in code, when appropiate. For example, a standalone about dialog:

<AboutDialog class:standalone="true" class:private="aboutdialog1" delete-event="{aboutdialog1.hide_on_delete}"
modal="true" window-position="{WindowPosition.CENTER_ON_PARENT}" />

You can later use this dialog with

aboutdialog1.run (); 
  • Existing-standalone widgets

By specifying both gtkaml:standalone and gtkaml:existing you can customize widgets already created and already added to their parent, like the Dialog.vbox container.

  • Windows support

Vala 0.1.7 comes with better windows support. Packages for gtkaml 0.2 on Windows will soon be available (There are already source installation instructions)

Known issues:

Known issues are filed as issue #5, issue #6 and issue #7 and they will be solved in future minor versions

(2008-02-09) gtkaml 0.1.1.1

Fixed a bug with signals parameters.

gtkaml 0.1.1.1 requires glib-2.0, vala-1.0 >= 0.1.6, libxml-2.0, and gtk+-2.0

Changes:

  • fixed a segfault where a g_strjoinv () was called without a last NULL
  • fixed bug with signals handling that missed most parameters
  • added tree view column as container in implicits.ini
  • added reference tags (see goals for 0.2)
  • changed ',' into ';' in implicits.ini for treeview

(2008-02-06) gtkaml 0.1.1.0

Squashed some more bugs (some of them were blocking features).

gtkaml 0.1.1.0 requires glib-2.0, vala-1.0 >= 0.1.6, libxml-2.0, and gtk+-2.0

Some bugs that blocked entire goals from 0.1 were fixed:

  • fixed " issue #1 " which prevented a widget from a namespace to be added into a container from another namespace (and viceversa) e.g. this works now:
      <MyNS:MyBox>
        <Gtk:Label label="test"/>
      </MyNS:MyBox>
  • added the Gtk.MenuItem's constructor in implicits.ini because it required a parameter that was not a property
  • fixed an issue when looking up for constructor parameters' type (i.e do not use the widget's property type, but use the constructor's formal parameter type). The MenuItem didn't work because of this.
  • fixed " issue #3 " with gtkaml:name and gtkaml:namespace which were attributed as properties of this
  • packaging: removed the signal handler from example0.gtkaml that caused a vala crash

(2008-02-03) gtkaml 0.1.0.1

Fixed some packaging problems.

gtkaml 0.1.0.1 requires glib-2.0, vala-1.0 >= 0.1.6, libxml-2.0, and gtk+-2.0 Fixed some packaging problems.

  • vala >= 0.1.6 required now
  • examples binaries not installed anymore
  • examples intermediate sources (.c and .h) not delivered anymore - they are built from .gtkaml files

Known issues:

  • on some machines, gtkaml segfaults while compiling the example0.gtkaml source. Remove the key_release_event signal handler as a quick workaround, or try installing vala from svn (you will need vala-0.1.6 to build it)
  • the error reporting needs improvement
  • Container.add () is not used/found because it's a signal. Instead, Container.add_with_properties () it's used for now. Future releases will lookup for signals too when determining the add method to use
  • if you have Vala installed in an /unusual/place you need to specify --vapidir=/unusual/place/share/vala/vapi at command-line parameter

(2008-02-03) gtkaml 0.1.0.0

  • it requires glib-2.0, vala-1.0 >= 0.1.6, libxml-2.0, and gtk+-2.0
  • has all the capabilities described in DesignGoals marked as 'DONE in 0.1'

Known issues:

  • the error reporting needs improvement
  • Container.add () is not used/found because it's a signal. Instead, Container.add_with_properties () it's used for now. Future releases will lookup for signals too when determining the add method to use
  • if you have Vala installed in an /unusual/place you need to specify --vapidir=/unusual/place/share/vala/vapi at command-line parameter
  • although the ./configure script specifies vala-1.0 >= 0.1.5 you actually have to have vala 0.1.6 installed (i can't guarantee forward compatibility with later versions, though)