History log of /haiku/src/apps/icon-o-matic/CanvasView.cpp
Revision Date Author Comments
# 098eaec6 08-Jun-2023 Zardshard <0azrune6@zard.anonaddy.com>

Icon-O-Matic: Add reference images

Fixes #2748

Also fixes a comment misstating a function's name and code style.

Change-Id: I609a1f1e100ded647818e70b428cedc48cf29036
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6604
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# aedb8a1c 04-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* Small cleanups.
* Do not implement backbuffering. Besides being inefficient on Haiku it solves
the grey area on start up.
* Reimplement scrolling and layouting the canvas. The mouse cursor is now the
anchor when scrolling with the mouse wheel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41180 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c4b3726 09-Apr-2007 Stephan Aßmus <superstippi@gmx.de>

culmulative update...
* holding down space, or using the third mouse button, will force
the "pan canvas" mode
* using the mouse wheel zooms in and out
* fixed issues with the undo commands when nudging something with
the cursor keys
* manipulators can now indicate wether they changed the mouse cursor
* ChangePointCommand is no longer inserted if the point didn't change
* new "flip" points feature in context menu, flips "in" and "out" curve
control points
* mouse wheel events are now propagated together with the mouse position
* new "UndoesPrevious" method in Command interface (used to clean up
command stack)
* clean ups in CommandStack



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20623 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64dd737c 02-Dec-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed the dirty canvas when Icon-O-Matic is started in Haiku
(and also improved performance of rendering icons, the background
was cleared for no reason on each Draw() call) However there
must be a bug still in the app_server which causes GetClippingRegion()
to return an out-of-date clipping region (R5 has the very same bug
though)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fae6fb6d 19-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed stupid bug that prevented saving in native format
* fixed bug in RDefExporter
* improved zooming, icon is now centered at program start


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fac07a0 12-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* started work on saving program settins, window frame is
remembered for now
* fixed some annoying bugs:
- the snapping prevented some of the proximity checks from
working while editing a path or using the transform box,
now the Manipulators themself are responsible for mouse
snapping and can do so at the time it works best for them
- pressing the Esc key while using the transform box did
reset the transformation, but didn't exit the transform
mode (return to path editing)
* improved layout of some views when the window is resized



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ec18e87 17-Sep-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

various GCC 4 build fixes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4bd80a2 10-Sep-2006 Stephan Aßmus <superstippi@gmx.de>

* when loading an icon via drag&drop, the file will be remembered
for saving later
* added "Clean Up" feature to "Path" menu
* added "Freeze Transformation" to "Shape" menu (will apply the
current shape transformation onto the path and reset the shape
transformation to identity)
* small cleanup in ShapeListView
* implemented zooming in CanvasView
* added context menu while editing a path
* implemented undo/redo for transforming points
(press T or use context menu)
* added "Split Points" feature (path editing context menu), it will
make two points from one control point
* improved selecting path points with selection rect
* improved SVG import for zuMis BeOS icons (more precise scale)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e1ba39f 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* merged Icon-O-Matic from Ingos layout branch into trunk (r18134:18685)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a3ac8bd9 12-Jul-2006 Bruno G. Albuquerque <bga@bug-br.org.br>

Quick fix to get it compiling under ZETA. I hope I didn't break it for other platforms.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e5799544 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

beginning to check up on gui components:
* added a group of controls to access and manipulate colors (incomplete)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17917 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31e20891 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* added a color picker panel
(heavily modified, but originally based on Colors! by Werner Freytag)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce181bb0 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed memory leaks and display bugs
* VectorPath objects were released one two many times
by the Shape PathContainers (they don't acquire when
a path is added, the Shape does that for them) the
PathContainer of the Icon needs to release though, as
it "owns" the paths
* put the Selection class used by PathManipulator into
the PathManipulator namespace, since the compiler seemed
to use the wrong destructor (the one from the generic
Selection class)
* uses a better mechanism to track and render
changed parts of icon


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17903 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f67876a0 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

some more "putting things together" for testing:
* add a VectorPath to Document->Icon()->Paths()
* add a Style to the global StyleManager
* actually add a Shape to the Document->Icon()->Shapes()
which uses the style and the path from above

fleshing out of CanvasView:
* use an offscreen bitmap/view to avoid flickering
* use an IconRenderer to render the set Icon
* implement support for zooming

PathManipulator:
* use the conversion from/to Canvas space and View space
in CanvasView (I would have liked to solve this in a
more generic way, so that PathManipulator didn't have to
know CanvasView, but I was not very creative...)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17891 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128277c9 13-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

the first steps towards Icon-O-Matic
* added a framework with many classes that I think will be useful
* currently, the StateView and Manipulator interface are used to
allow editing a single VectorPath object, nothing more... the
CommandStack framework is also used to support Undo/Redo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17822 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aedb8a1c345a800e741ce66c5bd117febb249d94 04-Apr-2011 Stephan Aßmus <superstippi@gmx.de>

* Small cleanups.
* Do not implement backbuffering. Besides being inefficient on Haiku it solves
the grey area on start up.
* Reimplement scrolling and layouting the canvas. The mouse cursor is now the
anchor when scrolling with the mouse wheel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41180 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c4b3726d9477810a630f9c0d0604a36473df559 09-Apr-2007 Stephan Aßmus <superstippi@gmx.de>

culmulative update...
* holding down space, or using the third mouse button, will force
the "pan canvas" mode
* using the mouse wheel zooms in and out
* fixed issues with the undo commands when nudging something with
the cursor keys
* manipulators can now indicate wether they changed the mouse cursor
* ChangePointCommand is no longer inserted if the point didn't change
* new "flip" points feature in context menu, flips "in" and "out" curve
control points
* mouse wheel events are now propagated together with the mouse position
* new "UndoesPrevious" method in Command interface (used to clean up
command stack)
* clean ups in CommandStack



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20623 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64dd737cf387c94e968bf95c2fb2bcaa668fc780 02-Dec-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed the dirty canvas when Icon-O-Matic is started in Haiku
(and also improved performance of rendering icons, the background
was cleared for no reason on each Draw() call) However there
must be a bug still in the app_server which causes GetClippingRegion()
to return an out-of-date clipping region (R5 has the very same bug
though)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19413 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fae6fb6d69b20bf18e1bcc51ec1384b1a313d6a3 19-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed stupid bug that prevented saving in native format
* fixed bug in RDefExporter
* improved zooming, icon is now centered at program start


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fac07a0887406d944d78403f8a3b01a4e6154be 12-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* started work on saving program settins, window frame is
remembered for now
* fixed some annoying bugs:
- the snapping prevented some of the proximity checks from
working while editing a path or using the transform box,
now the Manipulators themself are responsible for mouse
snapping and can do so at the time it works best for them
- pressing the Esc key while using the transform box did
reset the transformation, but didn't exit the transform
mode (return to path editing)
* improved layout of some views when the window is resized



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ec18e87d6cfa48715a6ed10bcd03858d832093b 17-Sep-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

various GCC 4 build fixes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4bd80a2dcc200d939292c877b3fdadb7f3a261e 10-Sep-2006 Stephan Aßmus <superstippi@gmx.de>

* when loading an icon via drag&drop, the file will be remembered
for saving later
* added "Clean Up" feature to "Path" menu
* added "Freeze Transformation" to "Shape" menu (will apply the
current shape transformation onto the path and reset the shape
transformation to identity)
* small cleanup in ShapeListView
* implemented zooming in CanvasView
* added context menu while editing a path
* implemented undo/redo for transforming points
(press T or use context menu)
* added "Split Points" feature (path editing context menu), it will
make two points from one control point
* improved selecting path points with selection rect
* improved SVG import for zuMis BeOS icons (more precise scale)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e1ba39f0440e200e30b6a648e70c3e8683dc5f7 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* merged Icon-O-Matic from Ingos layout branch into trunk (r18134:18685)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a3ac8bd9a7ef09e96d0836a7378e9b7f001c43a4 12-Jul-2006 Bruno G. Albuquerque <bga@bug-br.org.br>

Quick fix to get it compiling under ZETA. I hope I didn't break it for other platforms.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e57995449d5e5a8ed659229d98274bea0d824cef 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

beginning to check up on gui components:
* added a group of controls to access and manipulate colors (incomplete)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17917 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31e20891067fdd01ab68bc891566f070ff73ef58 23-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* added a color picker panel
(heavily modified, but originally based on Colors! by Werner Freytag)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce181bb0cd9855442f7a1db340e7e9d51f231e33 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

* fixed memory leaks and display bugs
* VectorPath objects were released one two many times
by the Shape PathContainers (they don't acquire when
a path is added, the Shape does that for them) the
PathContainer of the Icon needs to release though, as
it "owns" the paths
* put the Selection class used by PathManipulator into
the PathManipulator namespace, since the compiler seemed
to use the wrong destructor (the one from the generic
Selection class)
* uses a better mechanism to track and render
changed parts of icon


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17903 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f67876a0c5b91684c175f3dc7989537c35c23f55 21-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

some more "putting things together" for testing:
* add a VectorPath to Document->Icon()->Paths()
* add a Style to the global StyleManager
* actually add a Shape to the Document->Icon()->Shapes()
which uses the style and the path from above

fleshing out of CanvasView:
* use an offscreen bitmap/view to avoid flickering
* use an IconRenderer to render the set Icon
* implement support for zooming

PathManipulator:
* use the conversion from/to Canvas space and View space
in CanvasView (I would have liked to solve this in a
more generic way, so that PathManipulator didn't have to
know CanvasView, but I was not very creative...)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17891 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128277c969aa806add78941cd2972754c37a1572 13-Jun-2006 Stephan Aßmus <superstippi@gmx.de>

the first steps towards Icon-O-Matic
* added a framework with many classes that I think will be useful
* currently, the StateView and Manipulator interface are used to
allow editing a single VectorPath object, nothing more... the
CommandStack framework is also used to support Undo/Redo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17822 a95241bf-73f2-0310-859d-f6bbb57e9c96