Version 6, last updated by wycc at Sep 28 17:46 2010 UTC

Features in this page is not implemented yet. This is a TODO list for all planned features or ideas.

Automatic group relocation.

Currently, if we want to change the location of a MadButterfly symbol, we need to create it at the origin(top-left) of the screen and then group them there. Otherwise, it is not easy for the users to move it to specified location on the screen. This should be done automatically when we convert a group into a MadButterfly symbol.

We need to calculate the bounding box of a group and then do a new group to translate it to the origin point. The difficulty is how to acquire the bounding box. The inkscape itself have the bounding box....

Create a multi screen SVG

Currently, each screen of a MadButterfly UI must be put in a seperate SVG file. We can add a function to define multiple scenes in a single SVG files. This can be done easily in the SVG. We can create multiple scene group inside a SVG file. Each elelment represent a scene. For example,

<g id="scene">
    <g id="scene1">
    </g>
    <g id="scene2">
    </g>
    <g id="scene3">
    </g>
</g>

In the MadButterfly, it can search for the scene node and display it from the first scene. Our program can use

mb_scene_goto(sprite, "scene2");

to display the scene2.In the inkscape extention, we need to provide an interface to switch between different scenes.

PS. This has been implemented already. Please refer to the Current Inkscape Extention.

Add MadButterfly to the context menu.

This requires modification to the inkscape. We hope to access the Madbutterfly menu from the context menu.

Implement application framework

The framework will provide a framework to write a MadButterfly application. A code generator will help users to start a new application by some simple clicks. Please look at the design document MadButterfly Application Framework.

PS. A prototype has been added in the example/dynamic. We will relocate it to src/mbaf latter.

Text Filed

In the inkscape, when we insert a text field, we actually insert a text node and a couple of tspan node to define the layout of the text. If we want to modify the text in the runtime, we need to have some API which can modify the tspan nodes under the text node. In order to do this, we define a text field API to manipulate the text node. Please refer to Text Field API for the details.

Firefox integration

In order to integrate with the animation editor in the firefox, we will migrate all pygtk UI to the XUL inside the firefox. For this, we implement a new verb and effect. Please refer to Firefox integration for the details.