7 years agofeedback/overlays: begin categorizing, add toggles
Andrew Chadwick [Thu, 12 Jan 2012 01:21:13 +0000 (01:21 +0000)]
feedback/overlays: begin categorizing, add toggles

Add toggle actions and boolean user settings for those classes of
feedback which are currently implemented as overlays. Scale display
defaults to on, last-pos feedback defaults to off.

If we add a statusbar, certain kinds of textual feedback should go
there and not to the overlays if the statusbar is visible. Fading
overlays are quite visually noisy! This will require some sort of
textual feedback manager, but... later.

Regularize overlay constructors. Move responsibility for overlay
management to the drawwindow for now.

7 years agooverlays: api for showing info on tdws
Andrew Chadwick [Wed, 11 Jan 2012 01:02:30 +0000 (01:02 +0000)]
overlays: api for showing info on tdws

Experimental stab at an internal interface for animated or static
fragments of overlaid information which respond to user events.
Currently just a scale/zoom level indicator and a marker for the last
painting position, both of which fade out and are careful to only redraw
their own section of the screen.

Intended uses: textual explanations of fancy modes with lots of keyboard
chording, showing the document frame both normally and when being
edited, anything which must be displayed that isn't the canvas being
worked on. Maybe even previews of the current brush, its radius, colour,
stylus nib angle, whatever.

7 years agodrawwindow: pass unbound button presses to the tdw
Andrew Chadwick [Tue, 10 Jan 2012 20:40:02 +0000 (20:40 +0000)]
drawwindow: pass unbound button presses to the tdw

Fix a theoretical regression: button-press events that aren't bound to
anything at the drawwindow level weren't being passed through to the tdw

7 years agoscratchpad: update icons, fix icon sizes
Andrew Chadwick [Sun, 1 Jan 2012 14:44:06 +0000 (14:44 +0000)]
scratchpad: update icons, fix icon sizes

The icon for the scratchpad was a bit too close to the new colorize icon
(which is a redraw of the Gimp's one, thus an older concept). Use an
older scratchpad icon I did a while back - lost the source icon sheet
unfortunately, but the bitmaps and scalable are still workable.

Coincidentally fixes

7 years agoi18n: bugfix in zh_TW
Ruei-Yuan Lu [Sun, 1 Jan 2012 12:00:28 +0000 (13:00 +0100)]
i18n: bugfix in zh_TW

Fix missing '%s' in po/zh_TW.po

7 years agoadded View>Fit command
Richard Jones [Fri, 16 Dec 2011 09:41:33 +0000 (04:41 -0500)]
added View>Fit command

7 years agocolorize: add brushmodifier action & toolbar entry
Andrew Chadwick [Tue, 29 Nov 2011 19:32:13 +0000 (19:32 +0000)]
colorize: add brushmodifier action & toolbar entry

Allow colorize mode to be entered via an action selectable from the menu
and the toolbar.

7 years agobrushlib: colorize brush blendmode with weighting
Andrew Chadwick [Tue, 8 Nov 2011 19:16:04 +0000 (19:16 +0000)]
brushlib: colorize brush blendmode with weighting

Add a tinting/colorizing brush blend mode which applies the source's hue
and saturation while retaining the value of the target image.  You can
colorize with aa different colour immediately afterwards if you like,
and theoretically at least, only a little information is lost.

This uses a variant on the Krita way of doing things, similar to that of
PDF implementations using the open spec: the algorithm comes from the
spec addendum.

Colorize mode is weighted. I've used the luma coefficients from the
HDTV/sRGB specs rather than the older SDTV spec, but there shouldn't be
too much to choose between them. Most calibrated monitors approximate
sRGB, so that should be OK.

7 years agotiledsurface: rm empty tiles only at end
Andrew Chadwick [Tue, 20 Dec 2011 12:21:29 +0000 (12:21 +0000)]
tiledsurface: rm empty tiles only at end

It's better to remove the empty tiles at the end of moving rather than
before or during the interactive drags.

7 years agomove layer: fix to prevent tiledict overgrowth
Richard Jones [Tue, 20 Dec 2011 01:18:41 +0000 (20:18 -0500)]
move layer: fix to prevent tiledict overgrowth

Fixes to prevent Layer Move from always increasing TileDict size.

7 years agominor "scons install" stuff
Martin Renold [Tue, 13 Dec 2011 20:40:27 +0000 (21:40 +0100)]
minor "scons install" stuff

Remove shebang and executable bit from It's only used
for compilation; this is just to hide them from the evil eyes of the
distribution tools ;-)

7 years agoi18n: update Chinese Traditional (zh_TW)
Ruei-Yuan Lu [Sat, 10 Dec 2011 22:10:39 +0000 (23:10 +0100)]
i18n: update Chinese Traditional (zh_TW)

7 years agolayer move: strokemap too + cursor & idler tweaks
Andrew Chadwick [Sat, 26 Nov 2011 20:49:42 +0000 (20:49 +0000)]
layer move: strokemap too + cursor & idler tweaks

Add support for moving the layer's strokemap after the user finishes the
drag. Do it unobtrusively in the existing idletask processor.

Cursor fix: now that layer moves are more responsive, the four-way arrow
or closed fist cursor feels nicer.

Internally, there is now one idletask processor per StrokeShape, not a
single global instance. Shapes can now be forced to completion
independently of other shapes, which may be slightly faster when picking
if the shape of interest is near the top of the stack. The payoff from
using individual processor objects is far more certain when queueing
strokemap translate operations.

7 years agolayer move: blank tiles during & after drag
Andrew Chadwick [Fri, 25 Nov 2011 23:16:12 +0000 (23:16 +0000)]
layer move: blank tiles during & after drag

Avoid flickering and some redraws by blanking tiles needing it just
before writing if they're also to be written, or in a big batch right at
the end of processing each position update if they're still pending.
Looks a bit crap and dropping-y for sparse layers, but it seems to work.

Refactor the interactive move by encapsulating its redraw progress state
in a helper object rather than passing lots of stuff around. Move
responsibility for tile-side bookkeeping back into the surface
implementation where it belongs.

7 years agolayer move: make undoable, distance weighting etc
Andrew Chadwick [Thu, 24 Nov 2011 20:23:57 +0000 (20:23 +0000)]
layer move: make undoable, distance weighting etc

Allow the layer-move action to be undone.

Distance-weight and dither the tiles being dragged around. Use modern
key-based sorting too.

General code tidy and path reduction.

7 years agomove layer: improved feedback & responsiveness
Andrew Chadwick [Thu, 24 Nov 2011 02:10:05 +0000 (02:10 +0000)]
move layer: improved feedback & responsiveness

Improve the apparent responsiveness during a drag to move the current
layer. The idea is to update the display during the drag in an idle
handler, lazily to avoid doing unnecessary work. Schedule the first tile
shifts to happen around the cursor, since that's where the user is
presumably looking. Still a little slow to start because of the initial
snapshotting and sorting, but it feels far more responsive now.

Add cursors for the various drag operations, just because.

Hourglass/watch cursor after a move-layer drag while it slots the
remaining tiles into place.

7 years agomove layer: initial implementation
Andrew Chadwick [Wed, 16 Nov 2011 19:07:02 +0000 (19:07 +0000)]
move layer: initial implementation

Tiles are sliced up in Python code during moves.

Abstract out all the drag functions as distinct classes with a
start/update/stop interface and a common object lifecycle. This lets
more complex drag objects be stateful.

7 years agotablet detection: workaround for specific device
Martin Renold [Wed, 7 Dec 2011 20:07:14 +0000 (21:07 +0100)]
tablet detection: workaround for specific device

"Microsoft Microsoft® 2.4GHz Transceiver V1.0"
Is detected as tablet, pressure enabled, gtk+ events screwed up.

7 years agomacos: build fix
Martin Renold [Wed, 7 Dec 2011 19:00:41 +0000 (20:00 +0100)]
macos: build fix

7 years agowin64: build fix
Martin Renold [Wed, 7 Dec 2011 18:55:49 +0000 (19:55 +0100)]
win64: build fix

Since we use uint32_t, we have to include stdint.h.

<tumagonx> in brushlib\helpers.hpp when build with ming-w64 it complain
undeclared stuff, can be fixed by adding #include <stdint.h>
<tumagonx> mingw32 build just fine

7 years agoUpdated Japanese translation
a3novy [Sun, 4 Dec 2011 14:47:24 +0000 (15:47 +0100)]
Updated Japanese translation

7 years agoUpdated the Russian translation
Alexandre Prokoudine [Wed, 23 Nov 2011 17:49:01 +0000 (21:49 +0400)]
Updated the Russian translation

7 years agobrushmanager: fix selection frame and exception
Martin Renold [Fri, 2 Dec 2011 18:23:15 +0000 (19:23 +0100)]
brushmanager: fix selection frame and exception

Remove in_brushlist member of ManagedBrush. Instead, check bm.groups.
Add assertion to catch related bugs earlier in the future. , broken by commit 5b9f9765d4

7 years agoexport: fix exception if no filename
Andrew Chadwick [Tue, 29 Nov 2011 19:57:15 +0000 (19:57 +0000)]
export: fix exception if no filename

Fix exception when performing exports when the filename is not yet set.

7 years agowin32: need confpath created first
Tumagonx [Fri, 25 Nov 2011 18:04:56 +0000 (19:04 +0100)]
win32: need confpath created first

(a blocker bug in 1.0.0)

7 years agoversion bump
Martin Renold [Mon, 21 Nov 2011 19:22:48 +0000 (20:22 +0100)]
version bump

7 years agolayer dialog: minor string changes
Martin Renold [Mon, 21 Nov 2011 19:19:19 +0000 (20:19 +0100)]
layer dialog: minor string changes

Thanks to Gergely for spotting.

7 years agoupdate copyright year
Martin Renold [Mon, 21 Nov 2011 19:11:55 +0000 (20:11 +0100)]
update copyright year

7 years agobrushmanager: mini refactor
Martin Renold [Sun, 13 Nov 2011 20:17:19 +0000 (21:17 +0100)]
brushmanager: mini refactor

Move ManagedBrush.in_brushlist bool into constructor.
This replaces the 'retain_parent' parameter to load_brush().

7 years agomake ManagedBrush.settings a property
Martin Renold [Sun, 13 Nov 2011 20:01:02 +0000 (21:01 +0100)]
make ManagedBrush.settings a property

This gets rid of the 'if persistent and not settings_loaded:
load_settings()' in various places.

7 years agoSpanish translation fixes v1.0.0
Manuel Quiñones [Tue, 22 Nov 2011 12:29:23 +0000 (09:29 -0300)]
Spanish translation fixes

Reviewed by grafica-libre mailing list.

Signed-off-by: Manuel Quiñones <>
7 years agoREADME: remove win32 build instructions from 2008
Martin Renold [Mon, 21 Nov 2011 19:46:28 +0000 (20:46 +0100)]
README: remove win32 build instructions from 2008

Add links to the wiki instead.

7 years agoremove README.scratchpad
Martin Renold [Mon, 21 Nov 2011 19:25:41 +0000 (20:25 +0100)]
remove README.scratchpad

docu about the state of the implementation, probably outdated

7 years agoupdate French translation
Popolon [Mon, 21 Nov 2011 08:32:52 +0000 (09:32 +0100)]
update French translation

7 years agochangelog update
Martin Renold [Sun, 20 Nov 2011 17:35:19 +0000 (18:35 +0100)]
changelog update

7 years agotesting: modernize bigimage.ora
Martin Renold [Sun, 20 Nov 2011 15:53:44 +0000 (16:53 +0100)]
testing: modernize bigimage.ora

Looks like it was saved with mypaint < 0.9.1, thus lacking the
background_tile attribute.

This obviously has an influence on the benchmarks:
load_ora: 2.08 --> 1.13
memory_zoomed_out_5x: 194k --> 169k

7 years agoversion bump
Martin Renold [Sun, 20 Nov 2011 14:42:06 +0000 (15:42 +0100)]
version bump

7 years agoload_ora: add feedback_cb
Martin Renold [Sun, 20 Nov 2011 14:23:28 +0000 (15:23 +0100)]
load_ora: add feedback_cb

Also, make load_png use the new fast code instead of going
via gdk_pixbuf.

7 years agoload_ora: load png layers faster, use less memory
Martin Renold [Sun, 20 Nov 2011 01:06:15 +0000 (02:06 +0100)]
load_ora: load png layers faster, use less memory

Use libpng directly (fastpng.hpp) as we already did for saving.
No longer load the full png into a gdk_pixbuf, but load and
convert one tile row at a time.

This should use less temporary memory, especially if lots of
tiles are empty, because we can free them again early.

This should fix

Also remove code to recognize solid backgrounds (because it expects
the png to be in a gdk_pixbuf). Rely on the background_tile attribute

load_ora benchmark: 2.75 --> 2.08

7 years agoSpanish translation updated
Manuel Quiñones [Sun, 20 Nov 2011 03:41:01 +0000 (00:41 -0300)]
Spanish translation updated

Signed-off-by: Manuel Quiñones <>
7 years agofix compiler warning
Martin Renold [Sat, 19 Nov 2011 17:56:30 +0000 (18:56 +0100)]
fix compiler warning

only seen with scons debug=1

7 years agosave_png: don't append an additional info block
Martin Renold [Sat, 19 Nov 2011 17:51:01 +0000 (18:51 +0100)]
save_png: don't append an additional info block

Bugfix, but I doubt that anyone would ever have noticed.

7 years agoalways allow to cancel eraser mode
Martin Renold [Fri, 18 Nov 2011 23:27:13 +0000 (00:27 +0100)]
always allow to cancel eraser mode

Fix for

And a similar problem fixed by this commit:
<liquidApe> in trunk - draw some, press 'e' to go into eraser mode, then
flip pen over and erase some, then flip pen back over, it will flip back
into the 'e' eraser. Press 'e' again to toggle out of eraser mode and
note you can't get out of eraser mode

7 years agoupdated Hungarian translation
Gergely Aradszki [Fri, 18 Nov 2011 08:20:01 +0000 (09:20 +0100)]
updated Hungarian translation

7 years agoupdated pt_BR translation
Joao S. O. Bueno [Fri, 18 Nov 2011 08:17:17 +0000 (09:17 +0100)]
updated pt_BR translation

7 years agoUpdated Russian translation for 1.0. Most work is done.
Alexandre Prokoudine [Thu, 17 Nov 2011 12:22:06 +0000 (16:22 +0400)]
Updated Russian translation for 1.0. Most work is done.

7 years agocosmetic: fix separators drawing at ends
Andrew Chadwick [Wed, 16 Nov 2011 17:42:20 +0000 (17:42 +0000)]
cosmetic: fix separators drawing at ends

Fix separator drawing at the ends ofthe toolbar under some
circumstances. We don't really need the fussy little dividing lines, so
set all separators to not draw.

7 years agotoolbar: minor cosmetic tweaks
Andrew Chadwick [Tue, 15 Nov 2011 22:33:58 +0000 (22:33 +0000)]
toolbar: minor cosmetic tweaks

Put the menu button inside the toolbar and remove its normal-state
border. It looks far better, and works with most themes now, after some
judicious rc_parse_string() persuasion. Some default focus tweaks to
make things look a little neater on opening. Ctrl[+Shift]+Tab now works
along the toolbar, FWIW.

7 years agoUpdated nn-NO translation for version 1.0
Tor Egil Hoftun Kvæstad [Tue, 15 Nov 2011 19:29:13 +0000 (20:29 +0100)]
Updated nn-NO translation for version 1.0

Updated the Norwegian Nynorsk translation for version 1.0

7 years agobrush collection tuning
Martin Renold [Sun, 13 Nov 2011 22:35:56 +0000 (23:35 +0100)]
brush collection tuning

Mostly just enabling anti-aliasing for brushes where it does not matter.
(This is to have better defaults to start tuning.)
Also, retuning of some ink brushes that were not updated recently, using
anti-aliasing, and in some rare cases, increasing opaque_linearize.

see eg.

7 years agomypaintlib: Use SharedLibrary instead of LoadableModule in build
Jon Nordby [Sun, 13 Nov 2011 21:41:20 +0000 (22:41 +0100)]
mypaintlib: Use SharedLibrary instead of LoadableModule in build

On OSX LoadableModule will try to create a module bundle,
which is not what we want. The SHLIBSUFFIX was also ignored,
so produced file had the wrong file extension.

7 years agobrushsettings: keep 'anti_aliasing' disabled for old brushes
Martin Renold [Sun, 13 Nov 2011 21:25:43 +0000 (22:25 +0100)]
brushsettings: keep 'anti_aliasing' disabled for old brushes

Let's take .myb compatibility a bit more serious, as this one
can change a few existing brushes to the worse.

7 years agofix "save scrap" bug
Martin Renold [Sun, 13 Nov 2011 21:13:02 +0000 (22:13 +0100)]
fix "save scrap" bug

Fix exception after 26 revisions (letter z).

7 years agoUpdate Norwegian Bokmål translation
Jon Nordby [Fri, 11 Nov 2011 21:04:45 +0000 (22:04 +0100)]
Update Norwegian Bokmål translation

7 years agobrush.preview is always a valid pixbuf
Martin Renold [Sun, 13 Nov 2011 19:05:05 +0000 (20:05 +0100)]
brush.preview is always a valid pixbuf

Turn ManagedBrush.preview into a property, so we can load
the preview on demand transparently.  Remove many lines of
"if not preview: load_preview()".

Fix for

7 years agoUpdated the Swedish translation.
Griatch [Sat, 12 Nov 2011 13:24:10 +0000 (14:24 +0100)]
Updated the Swedish translation.



7 years agoupdate default startup group
Martin Renold [Sun, 13 Nov 2011 16:06:38 +0000 (17:06 +0100)]
update default startup group

7 years agoupdate all .po files
Martin Renold [Thu, 10 Nov 2011 21:59:27 +0000 (22:59 +0100)]
update all .po files

7 years agomore helpful error message when icons are missing
Martin Renold [Sun, 6 Nov 2011 12:06:21 +0000 (13:06 +0100)]
more helpful error message when icons are missing

7 years agobrushmodifier: remove dead code
Martin Renold [Sun, 6 Nov 2011 10:50:23 +0000 (11:50 +0100)]
brushmodifier: remove dead code

7 years agofix "copy to clipboard"
Martin Renold [Sun, 6 Nov 2011 08:34:04 +0000 (09:34 +0100)]
fix "copy to clipboard"

7 years agobrushes: update of deevad brushset
David Revoy [Sat, 5 Nov 2011 19:15:19 +0000 (20:15 +0100)]
brushes: update of deevad brushset

Mainly little improvement here and there to make them react better,
have more linear pressure behavior, more predictible effect, or
just correction of some glitch happening sometimes with (newer?)
antialiasing and hardness. Also, I did 4 or 5 removal and sort them
a little bit differently.

Normaly, if I did well my job , most user will not see any
difference, but tools will be better for their artworks...
I changed license of the brush pack to "public domain" ( to avoid
problems with pick context, and derivative brush pack )
I didn't labelled icons with text, because most of the brush icons
visual are pretty obvious imo, and label are not adapted to each
langage ; I'm happy to have Asian user of my preset.

7 years agotablet detection: workaround for laptop touchpad
Martin Renold [Sat, 5 Nov 2011 18:26:30 +0000 (19:26 +0100)]
tablet detection: workaround for laptop touchpad

Don't enable pressure if the device is called "touchpad".
Gtk+ screws up if we do.

7 years agorename default brush groups
Martin Renold [Wed, 2 Nov 2011 20:10:12 +0000 (21:10 +0100)]
rename default brush groups

Don't use artist's name, use neutral "set#1", "set#2", etc. as
proposed on the mailing list.

7 years agomenu: download brushes (in web browser)
Martin Renold [Sun, 30 Oct 2011 20:28:52 +0000 (21:28 +0100)]
menu: download brushes (in web browser)

7 years agowindows: swap button2/3 default binding
Martin Renold [Sun, 30 Oct 2011 16:27:29 +0000 (17:27 +0100)]
windows: swap button2/3 default binding

The linux wacom driver inverts the button numbers of the
pen flip button. Let's not have the color history on the
button that is commonly hit by accident (on wacom tablets).

7 years agoupdate Indonesian translation
Tumagonx [Sun, 30 Oct 2011 15:46:12 +0000 (16:46 +0100)]
update Indonesian translation

7 years agofix unittest
Martin Renold [Fri, 28 Oct 2011 17:48:48 +0000 (19:48 +0200)]
fix unittest

My previous commit did change the stroke of the testing brush
used for performance measurement. The color differences are below
3 levels of 256 which is not visible by the naked eye :-)

7 years agobrushlib: fix bug with smudge_length=0
Martin Renold [Fri, 28 Oct 2011 17:25:17 +0000 (19:25 +0200)]
brushlib: fix bug with smudge_length=0

For brushes with smudge_length=0 (eg. in Ramon's concept art brushset)
smudging was broken by my optimization 5dd46ce. For performance reasons
we force smudge_length to be greater than 0.01 now.

Ramon's concept art brushset uses a tiny smudge radius, so neither
this commit nor my previous one affects their performance.

Reminder to brush creators: increasing smudge_length does improve
brush performance with the new code. Instead of using a tiny
smudge radius (which can result in faster-than-expected smudge
color changes) you can use a normal smudge radius and increase
smudge_length instead to get performance.

7 years agoupdate README about icon path
Martin Renold [Thu, 27 Oct 2011 20:07:39 +0000 (22:07 +0200)]
update README about icon path

According to:

7 years agoadd back original v0.6.0 "wash" colorchanger
Martin Renold [Sun, 23 Oct 2011 19:50:40 +0000 (21:50 +0200)]
add back original v0.6.0 "wash" colorchanger

The one without the horizontal/vertical stripes.

7 years agoadd back previous color changer
Martin Renold [Sun, 23 Oct 2011 19:17:02 +0000 (21:17 +0200)]
add back previous color changer

Rename current color changer to "crossed bowl".
Add back previous color changer under the name "wash".
Why does everything have to have a name again?

7 years agooptimization for watercolor/smudge brushes
Martin Renold [Sun, 23 Oct 2011 13:21:17 +0000 (15:21 +0200)]
optimization for watercolor/smudge brushes

Watercolor/smudge brushes will profit from this, reducing the number
of get_color() calls. The price is a slightly slower reaction to
color gradients on the canvas, but it's very hard to notice.

brushengine_paint_hires 25% speedup

7 years agofix unittests
Martin Renold [Sun, 23 Oct 2011 10:29:14 +0000 (12:29 +0200)]
fix unittests

related to layer.save_as_png() changes

7 years agobrushes: fix pixel brushes
Martin Renold [Sat, 22 Oct 2011 22:01:02 +0000 (00:01 +0200)]
brushes: fix pixel brushes

disable anti-aliasing for pixel brushes

7 years agobrushlib basic anti-aliasing
Martin Renold [Sat, 22 Oct 2011 21:18:11 +0000 (23:18 +0200)]
brushlib basic anti-aliasing

Automatically adjust the dab hardness to prevent aliasing.

Most current ink brushes use a low hardness to prevent aliasing, and
are only suitable (fine-tuned) for a given resolution. With this new
code, many brushes can now just set hardness to the maximum (1.0).

Some advanced ink brushes make the hardness depend on speed or pressure,
in order to get better anti-aliasing when the radius changes with
speed or pressure. This is no longer needed and should be disabled
to prevent blur.

Anti-aliasing is enabled by default for all brushes. Existing pixel
brushes and erasers that want to erase 100% and not just 99.9% will
have to disable it.

This is not the perfect anti-aliasing implementation of course; thin
strokes (with radius close to 1px and below) tend to disappear because
of the hardness implementation. This is because the math used in the
implementation is correct mainly for large dabs with high hardness.

7 years agoscratchpad: always use white background
Martin Renold [Fri, 21 Oct 2011 17:39:58 +0000 (19:39 +0200)]
scratchpad: always use white background

The problem was that the colors mixed on the scratchpad
look different depending on your background. There was no way
to change the scratchpad background independent of the main

7 years agobrushlib: docu
Martin Renold [Fri, 21 Oct 2011 17:23:24 +0000 (19:23 +0200)]
brushlib: docu

7 years add .xz format
Martin Renold [Mon, 10 Oct 2011 18:37:41 +0000 (20:37 +0200)] add .xz format

7 years agodocu: brushlib figures
Martin Renold [Sat, 8 Oct 2011 15:21:13 +0000 (17:21 +0200)]
docu: brushlib figures

used for

7 years agotileddrawsurface: Fix a wrongly named attribute, mark_mipmap_dirty
Ariful Bhuiyan [Wed, 5 Oct 2011 21:27:09 +0000 (23:27 +0200)]
tileddrawsurface: Fix a wrongly named attribute, mark_mipmap_dirty

7 years agolayer: minor fix for missing argument
Andrew Chadwick [Tue, 4 Oct 2011 00:58:29 +0000 (01:58 +0100)]
layer: minor fix for missing argument

7 years agoMove stroke_to() implementation into Layer
Jon Nordby [Mon, 3 Oct 2011 22:56:12 +0000 (00:56 +0200)]
Move stroke_to() implementation into Layer

Lets it handle the details as it sees fit.

7 years agoMove COMPOSITE_OPT definitions to lib/
Jon Nordby [Mon, 3 Oct 2011 19:08:30 +0000 (21:08 +0200)]
Move COMPOSITE_OPT definitions to lib/

Not tiledsurface specific.

7 years agoMake TiledSurface an internal member of Layer
Jon Nordby [Mon, 3 Oct 2011 18:35:22 +0000 (20:35 +0200)]
Make TiledSurface an internal member of Layer

Most part of the code should not care about
the surface implementation used. Provide wrappers
on layer for common things, and let the exotic
things call layer._surface to make it clear they
are dealing with internals.
In order to make it easier to swap out TiledSurface
with another surface implementation.

7 years agoglade stuff: add README, move launch script
Andrew Chadwick [Sun, 2 Oct 2011 17:34:26 +0000 (18:34 +0100)]
glade stuff: add README, move launch script

Add a README explaining the current status of the emerging Glade support
and what our vague goaals are with it. Move the launch script so that
developers don't trip over it or assume we're using Glade right now.

7 years agoglade: fix missing; wrap hsv-compat & dropdowns
Andrew Chadwick [Mon, 19 Sep 2011 03:47:00 +0000 (04:47 +0100)]
glade: fix missing; wrap hsv-compat & dropdowns

Add missing gui/ from last commit: oops.

Separate out HSV compatibility widget and add to the Glade catalogue.

Separate out dropdown panels and wrap that for Glade too. Allow setting
the dropdown panel's content widget to any toplevel non-window GtkWidget
via a property on the dropdown button.

7 years agoglade: separate out & wrap the item-spinbox widget
Andrew Chadwick [Sun, 18 Sep 2011 16:29:54 +0000 (17:29 +0100)]
glade: separate out & wrap the item-spinbox widget

The usual drill, but the slight wrinkle is that because it's a
derivative of a Box subclass, Glade would normall ask for a size each
time it's added. Override the setting and hide it since we always need 3
items exactly and the constructor will do that for us.

7 years agoglade: extract and wrap curve widget
Andrew Chadwick [Sun, 18 Sep 2011 02:19:37 +0000 (03:19 +0100)]
glade: extract and wrap curve widget

Wrap the custom pressure/input curve widget for glade, and move it out
to a separate, independently testable module.

7 years agoelastic: fix resize bug
Andrew Chadwick [Sun, 18 Sep 2011 01:55:05 +0000 (02:55 +0100)]
elastic: fix resize bug

Fix UI clunkiness whereby elastic windows wouldn't shrink again if their
elastic expanders had been triggered once.

7 years agoglade: wrap concrete elastic container/content
Andrew Chadwick [Sat, 17 Sep 2011 00:25:17 +0000 (01:25 +0100)]
glade: wrap concrete elastic container/content

Factor elastic containers and components out to their own module and add
a trivial ElasticWindow that can be built on later. Add the concrete
classes we have to the glade library, though it's mostly the expander /
window relationship we really care about.

7 years agoglade: wrap pixbuflist for glade
Andrew Chadwick [Fri, 16 Sep 2011 16:45:25 +0000 (17:45 +0100)]
glade: wrap pixbuflist for glade

I'd prefer we move to GtkIconView, but wrapping our own version is
trivial. Icons are from Glade and tweaked for a slightly different

7 years agoglade: tileddrawwidget support for glade projects
Andrew Chadwick [Fri, 16 Sep 2011 04:02:45 +0000 (05:02 +0100)]
glade: tileddrawwidget support for glade projects

The TiledDrawWidget is a fairly simple canvas, so nothing much needs to
be changed to support using it within glade projects. It has a slightly
dubious need to refer to a zoom quality setting, and a standalone model
needs to be wired in to support drawing within glade (very minimally :)
but that's about it.

7 years agoglade dev infrastructure, no widgets yet
Andrew Chadwick [Fri, 16 Sep 2011 04:01:06 +0000 (05:01 +0100)]
glade dev infrastructure, no widgets yet

Includes a script for running Glade using the local widget catalog.

7 years agobrush settings dropdown: clarify reset language
Andrew Chadwick [Fri, 30 Sep 2011 16:02:37 +0000 (17:02 +0100)]
brush settings dropdown: clarify reset language

Make the setting reset terminology clearer, explain in terms of "this
brush" and "saved values", "saved settings".

7 years agotoolbar: LnF tweaks, add an arrow
Andrew Chadwick [Thu, 29 Sep 2011 21:32:23 +0000 (22:32 +0100)]
toolbar: LnF tweaks, add an arrow

Make the dropdown main menu button's function a little more obvious. No
longer accept focus or the default since it makes the button rather
glaring in some themes, and there's always the menu key. Reduce font
weight; PANGO_WEIGHT_HEAVY is too chunky.

7 years agodoc: fix a hardcoded composite op name
Andrew Chadwick [Thu, 29 Sep 2011 14:35:18 +0000 (15:35 +0100)]
doc: fix a hardcoded composite op name

The name was also incompatible with the ORA spec. Didn't see it in
testing because we're tolerant about unrecognised input. Oops.

7 years agoprefs: make undo and redo bindable to buttons
Andrew Chadwick [Mon, 26 Sep 2011 16:50:10 +0000 (17:50 +0100)]
prefs: make undo and redo bindable to buttons

Simple enough wishlist item;

7 years agodropdowns: remove assertion
Andrew Chadwick [Mon, 26 Sep 2011 16:48:12 +0000 (17:48 +0100)]
dropdowns: remove assertion

Remove an assertion that breaks Ubuntu Lucid's version of PyGTK. It's
not really needed anyway.

7 years agocredits update
Andrew Chadwick [Sat, 24 Sep 2011 19:32:08 +0000 (20:32 +0100)]
credits update

Add sigetch to the about box's credits list.