Mercurial > MadButterfly
changeset 106:74e2ffd50741
Tutorial
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Fri, 12 Sep 2008 02:14:27 +0800 |
parents | 8d97455811a8 |
children | 069868161f63 |
files | dox/first_program.h |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dox/first_program.h Fri Sep 12 02:14:27 2008 +0800 @@ -0,0 +1,29 @@ +/*! /page first_program Your First MadButterfly Program. + * + * MadButterfly use SVG as a media to adapt gap between GUI designers + * and application programmmers. Designers export their works with SVG + * format. Then some ones, designers or programmers, assign IDs to SVG tags + * that will be manipulated by application. For example, you have a menu + * that should be hidden at beginning. When user hit a button, the menu + * should be showed. So, we assign an ID to the group or other tags that + * contain all elements in menu. The ID is the name of a object that + * application manipulate, hide and show it. + * + * After assigning IDs to tags, the file is translated by svg2code.py. + * Outputs of svg2code.py are M4 macro files. Conventional, foo.svg is + * translated a M4 file as foo.mb, using .mb as extension of file name. + * Macro files are translate to *.c and *.h files to link with application + * programs. + * + * For example, to translate foo.svg with steps + * - $(TOOLSDIR)/svg2code.py foo.svg foo.mb + * - m4 -I $(TOOLSDIR) mb_c_source.m4 foo.mb > foo.c + * - m4 -I $(TOOLSDIR) mb_c_header.m4 foo.mb > foo.h + * + * foo.h declares a structure, named 'foo' and two functions, + * foo_new() and foo_free(). An instance of 'foo' holds all objects for + * foo.svg. One object, with specified ID as name, for each tag. If you + * don't assign one, a random one is picked. foo_new() is invoked to create + * and initialize a 'foo' instance. A instance is released by calling + * foo_free(). + */