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().
+ */