Published using Google Docs
On-canvas tools and infrastructure project - Task list
Updated automatically every 5 minutes

On-canvas tools and infrastructure project - Task list

Task list

First task:

1. Enrich the context menu and add more items to it

2. Implement changing paint dynamics presets from the context menu (to have several presets to choose in the right click menu on canvas)

3. Review Mitch's text tool sources for the on canvas widgets.

4. List some other entries and controls related to the current context

Following tasks:

1. Have fading in and out widgets.

2. Display the widget on canvas, and implement fading effect.

3. Have controls of fading in and out, e.g. on mouse pressed, and released events.

4. Find out the canvas source code, and add event handlers.

5. Show the information on the status bar.

6. Replace pop-ups with these on canvas widgets.

Goals

1. Add fading in and out widgets on canvas for some tools, e.g. path drawing in draw tool, brush outlines

2. Remove pop-ups on transform and other tools

3. provide easy access to text attributes and other entries that usually live on the Tool Options dock

Benefits and values for Gimp

1. The availability of all options without moving the cursor

2. A transparent way of getting user input

3. Without getting in the way

Review and studies needed

Cairo drawing of tools

1. Study cairo.

2. Read mailing list discussions.

3. Review source code for examples.

Draw widgets over the canvas

1. Review drawing a "right-click menu" source code

2. Review the text tool by Mitch, as the example of widgets on the canvas.

3. See how to have fading widgets in GTK+/cairo, for controls to fade into view

4. Find out how to adjust opacity of widgets

5. Analyze the use of a timer to fade gradually in a speed. Or, there are alternatives other than a timer.

For transform tools

1. Fade in the controls with the transform inputs from one of the edges.

2. Place them over the image, or outside the image area, inside the window

There are two parts on canvas, image content area, and empty area. (Empty area can be larger if the image is in portrait.) Fading widgets can be on both of them, but need to be consistent for portrait and landscape image pages.

A Java on-canvas widget example

I have seen a nice small Java application as a similar example, having around 5 labels displayed on canvas. These labels are turned on and off with mouse intervention. They either stay in the canvas still, or move while mouse moving. Generally, this example is very similar to our project. The difference is to change the labels to be text fields that take inputs, and add fading in and out effects.